powerdesigner导入sql生成表

您所在的位置:网站首页 邮轮的材质 powerdesigner导入sql生成表

powerdesigner导入sql生成表

2024-01-15 11:37| 来源: 网络整理| 查看: 265

大家好,又见面了,我是你们的朋友全栈君。

在实际工作中,一张表,我们可能需要在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所示。

powerdesigner导入sql生成表_oracle导入sqlpowerdesigner导入sql生成表_oracle导入sql

图1

3、 之后,会弹出 New Physical Date Model 窗口。 在该窗口 “常规” 选项界面, 由于我们是将Oracle数据库中表转成Mysql数据库中表,所以 “DBMS” 行选择 “ORACLE Version 11g” 选项,如图2所示。

powerdesigner导入sql生成表_oracle导入sqlpowerdesigner导入sql生成表_oracle导入sql

图2

4、之后,会弹出 “Database Reverse Engineering Options” 窗口, 在该窗口点击 “Add Files (Ctrl + N)” 图标,选择Mysql数据库student表sql脚本,如图3、 图4所示。

powerdesigner导入sql生成表_oracle导入sqlpowerdesigner导入sql生成表_oracle导入sql

图3

powerdesigner导入sql生成表_oracle导入sqlpowerdesigner导入sql生成表_oracle导入sql

图4

5、由步骤4操作后,PowerDesigner 软件界面如下图5所示。

powerdesigner导入sql生成表_oracle导入sqlpowerdesigner导入sql生成表_oracle导入sql

图5

6、在 PowerDesigner 软件上,选择 “数据库” —> “Change Current DBMS…” 选项,如下图6所示。

powerdesigner导入sql生成表_oracle导入sqlpowerdesigner导入sql生成表_oracle导入sql

图6

7、之后,会弹出 “Change DBMS” 窗口。 由于我们是将Oracle数据库表转化成Mysql数据库表,在这里 “New 数据库管” 一行选择 “MySQL 5.0” 。 “Current 数据库管” 一栏,会随着这一步操作完成后,自动更改成 “MySQL 5.0” ,如下图7、图8所示。

powerdesigner导入sql生成表_oracle导入sqlpowerdesigner导入sql生成表_oracle导入sql

图7

powerdesigner导入sql生成表_oracle导入sqlpowerdesigner导入sql生成表_oracle导入sql

图8

8、使用快捷键: Ctrl + G,调用出 “Database Generation” 窗口,选择生成Mysql建表语句文件的路径,并对文件进行命名,如下图9所示。

powerdesigner导入sql生成表_oracle导入sqlpowerdesigner导入sql生成表_oracle导入sql

图9

9、之后,会弹出 “Generated Files” 窗口,由log日志、生成的sql脚本文件可知,程序运行成功。点击 “Generated Files” 窗口中的 “关闭(C)” 按钮后,会弹出 “结果列表” 窗口,该窗口无实际意义,直接关闭。 如下图10、图11所示。

powerdesigner导入sql生成表_oracle导入sqlpowerdesigner导入sql生成表_oracle导入sql

图10

powerdesigner导入sql生成表_oracle导入sqlpowerdesigner导入sql生成表_oracle导入sql

图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 所示。

powerdesigner导入sql生成表_oracle导入sqlpowerdesigner导入sql生成表_oracle导入sql

图12

powerdesigner导入sql生成表_oracle导入sqlpowerdesigner导入sql生成表_oracle导入sql

图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 '学生表';powerdesigner导入sql生成表_oracle导入sqlpowerdesigner导入sql生成表_oracle导入sql

图14

powerdesigner导入sql生成表_oracle导入sqlpowerdesigner导入sql生成表_oracle导入sql

图15

参考文章: PowerDesigner,如何将Mysql数据库建表语句转化成Oracle数据库建表语句。

姊妹篇文章: PowerDesigner,如何将Mysql数据库建表语句转化成Oracle数据库建表语句。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3