大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
在实际工作中,一张表,我们可能需要在Mysql数据库中建表,又要在Oracle数据库中建表。表中每个字段的数据类型、中文注释、是否可为NULL 问题,非常影响我们建表的效率。本篇文章,以Oracle数据库表为源表,通过PowerDesigner工具将其转化成Mysql数据库建表语句。
1、以 oracle_to_student(学生表)为例,Oracle数据库中建表语句如下所示。需要注意的是,若要相对完美的将Oracle数据库表转换成Mysql数据库表,需要严格按照以下Oracle数据库表结构方式,标点符号都不能多、不能少。
1.1、表名、字段名,需要去除 ` 符号 ;
1.2、若字段定义过程中缺少 ‘NOT NULL’、 ‘DEFAULT NULL’, 请添加 ;
1.3、若Oracle表中含主键,需要添加命令设置主键。
-- 使用PowerDesigner将Oracle建表语句转换成Mysql建表语句。
create table oracle_to_student
(
stu_id NUMBER(16) NOT NULL,
stu_name VARCHAR2(32) NOT NULL,
stu_tuition NUMBER(9, 2) NOT NULL,
stu_address VARCHAR2(500) DEFAULT NULL,
stu_age NUMBER(3) DEFAULT NULL,
create_date DATE DEFAULT NULL
)
tablespace STT_TBS_DATA
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 1
next 1
minextents 1
maxextents unlimited
);
comment on table oracle_to_student
is '学生表';
-- 新增语句
alter table oracle_to_student add constraint pk_student001 primary key(stu_id);
comment on column oracle_to_student.stu_id
is '学生编码';
comment on column oracle_to_student.stu_name
is '学生姓名';
comment on column oracle_to_student.stu_tuition
is '学费';
comment on column oracle_to_student.stu_address
is '学生地址';
comment on column oracle_to_student.stu_address
is '学生年龄';
comment on column oracle_to_student.create_date
is '创建时间';
2、 打开 PowerDesigner 软件, 选择 文件 —> 反向工程 —> Database ,如下图1所示。
图1
3、 之后,会弹出 New Physical Date Model 窗口。 在该窗口 “常规” 选项界面, 由于我们是将Oracle数据库中表转成Mysql数据库中表,所以 “DBMS” 行选择 “ORACLE Version 11g” 选项,如图2所示。
图2
4、之后,会弹出 “Database Reverse Engineering Options” 窗口, 在该窗口点击 “Add Files (Ctrl + N)” 图标,选择Mysql数据库student表sql脚本,如图3、 图4所示。
图3
图4
5、由步骤4操作后,PowerDesigner 软件界面如下图5所示。
图5
6、在 PowerDesigner 软件上,选择 “数据库” —> “Change Current DBMS…” 选项,如下图6所示。
图6
7、之后,会弹出 “Change DBMS” 窗口。 由于我们是将Oracle数据库表转化成Mysql数据库表,在这里 “New 数据库管” 一行选择 “MySQL 5.0” 。 “Current 数据库管” 一栏,会随着这一步操作完成后,自动更改成 “MySQL 5.0” ,如下图7、图8所示。
图7
图8
8、使用快捷键: Ctrl + G,调用出 “Database Generation” 窗口,选择生成Mysql建表语句文件的路径,并对文件进行命名,如下图9所示。
图9
9、之后,会弹出 “Generated Files” 窗口,由log日志、生成的sql脚本文件可知,程序运行成功。点击 “Generated Files” 窗口中的 “关闭(C)” 按钮后,会弹出 “结果列表” 窗口,该窗口无实际意义,直接关闭。 如下图10、图11所示。
图10
图11
10、由Oracle建表语句中文字段含义可知,stu_id、stu_age 这2个字段为普通数字数据类型字段,stu_tuition 字段为金额数据类型字段,需保留2位小数。经过PowerDesigner软件生成后的Mysql建表语句,这3个字段的数据类型并非是我们需要的数据类型,因此需要更改。
将 stu_id numeric(16, 0) 更改为 stu_id bigint(16) ; 将 stu_age numeric(3, 0) 更改为 stu_age int(3); 将 stu_tuition numeric(9, 2) 更改为 stu_tuition decimal(9, 2) 。 如下图12、 图13 所示。
图12
图13
11、经过上述处理之后,SQL脚本即可放到Navicat软件中直接运行使用。 图14、图15是效果展示图。
Oracle数据库表转成Mysql数据库表的SQL语句如下所示:
/*==============================================================*/
/* DBMS name: MySQL 5.0 */
/* Created on: 2020/3/12 9:34:59 */
/*==============================================================*/
drop table if exists ORACLE_TO_STUDENT;
/*==============================================================*/
/* Table: ORACLE_TO_STUDENT */
/*==============================================================*/
create table ORACLE_TO_STUDENT
(
STU_ID bigint(16) not null comment '学生编码',
STU_NAME varchar(32) not null comment '学生姓名',
STU_TUITION decimal(9,2) not null comment '学费',
STU_ADDRESS varchar(500) default NULL comment '学生年龄',
STU_AGE int(3) default NULL,
CREATE_DATE datetime default NULL comment '创建时间',
primary key (STU_ID)
);
alter table ORACLE_TO_STUDENT comment '学生表';
图14
图15
参考文章: PowerDesigner,如何将Mysql数据库建表语句转化成Oracle数据库建表语句。
姊妹篇文章: PowerDesigner,如何将Mysql数据库建表语句转化成Oracle数据库建表语句。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/195934.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...