mysql脚本转成oracle脚本_mysql脚本手动修改成oracle脚本

今天有一个需求,立了一个新项目,新项目初步定了使用了现有的框架,但数据库要求由原来的mysql改成oracle,所以原来的基础版本的数据库脚本就需要修改成符合oracle的脚本,修改完成后,总结了一下,大致需要修改的地方如下:

建表:create table

1、mysql的ID自增长

2、所有的表名、字段名的引号去掉(包括建表“表名”、“字段名”、主键“字段名”,索引的索引名称、字段名,外键的外键名称、表名、字段名 )

3、驱动、字符集等去掉

4、字段注释修改

5、索引修改

6、字段的类型修改,以下数据类型对应关系

mysql                                                                             oracle

int(5)                                                     number(5,0)             #5为长度,0为小数点精确数

datetime                                               date

smallint(5)                                            number(5,0)

float(5,2)、double(5,2)                         number(5,2)              #5为长度,2为小数精确数

char(8)、varchar(8)                             varchar2(8)

text                                                       clob

示例一:

mysql:

CREATE TABLE `fq_permission` (

`ID` int(11) NOT NULL AUTO_INCREMENT,

`PID` int(11) DEFAULT NULL COMMENT '父节点名称',

`NAME` varchar(50) NOT NULL COMMENT '名称',

`TYPE` varchar(20) DEFAULT NULL COMMENT '类型:菜单or功能',

`SORT` int(11) DEFAULT NULL COMMENT '排序',

`URL` varchar(255) DEFAULT NULL,

`PERM_CODE` varchar(50) DEFAULT NULL COMMENT '菜单编码',

`ICON` varchar(255) DEFAULT NULL,

`STATE` varchar(10) DEFAULT NULL,

`DESCRIPTION` text,

PRIMARY KEY (`ID`)

) ENGINE=InnoDB AUTO_INCREMENT=107 DEFAULT CHARSET=utf8;        #转成oracle时,去除驱动、字符集等

oracle:

CREATE TABLE fq_permission (                #变化:去引号

ID NUMBER(11) NOT NULL,                  #变化:修改数据类型、去引号、去自增长

PID NUMBER(11) DEFAULT NULL ,              #变化:修改数据类型、去引号、去注释

NAME varchar2(50) NOT NULL ,               #变化:同上

TYPE varchar2(20) DEFAULT NULL,              #变化:同上

SORT NUMBER(11) DEFAULT NULL,              #变化:同上

URL varchar2(255) DEFAULT NULL,                #变化:修改数据类型、去引号

PERM_CODE varchar2(50) DEFAULT NULL,            #变化:修改数据类型、去引号、去注释

ICON varchar2(255) DEFAULT NULL,                #变化:修改数据类型、去引号

STATE varchar2(10) DEFAULT NULL,                #变化:修改数据类型、去引号

DESCRIPTION clob,                        #变化:修改参数类型、去引号

PRIMARY KEY (ID)                        #变化:去引号

);

COMMENT ON COLUMN fq_permission.PID is '父节点名称';     #字段注释

COMMENT ON COLUMN fq_permission.NAME is '名称';

COMMENT ON COLUMN fq_permission.TYPE is '类型:菜单or功能';

COMMENT ON COLUMN fq_permission.SORT is '排序';

COMMENT ON COLUMN fq_permission.PERM_CODE is '菜单编码';

示例二:

mysql:

CREATE TABLE `fq_user_role` (

`ID` int(11) NOT NULL AUTO_INCREMENT,

`USER_ID` int(11) NOT NULL,

`ROLE_ID` int(11) NOT NULL,

PRIMARY KEY (`ID`),

KEY `FK_USER_ROL_REFERENCE_ROLE` (`ROLE_ID`) USING BTREE,

KEY `FK_USER_ROL_REFERENCE_USERS` (`USER_ID`) USING BTREE,

CONSTRAINT `fq_user_role_ibfk_1` FOREIGN KEY (`ROLE_ID`) REFERENCES `fq_role` (`ROLE_ID`),

CONSTRAINT `fq_user_role_ibfk_2` FOREIGN KEY (`USER_ID`) REFERENCES `fq_user` (`USER_ID`)

) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;

oracle:

drop table fq_user_role;

CREATE TABLE fq_user_role (

ID number(11) NOT NULL,

USER_ID number(11) NOT NULL,

ROLE_ID number(11) NOT NULL,

PRIMARY KEY (ID),

CONSTRAINT fq_user_role_ibfk_1 FOREIGN KEY (ROLE_ID) REFERENCES fq_role (ROLE_ID),

CONSTRAINT fq_user_role_ibfk_2 FOREIGN KEY (USER_ID) REFERENCES fq_user (USER_ID)

);

#索引另外创建

create index FK_USER_ROL_REFERENCE_ROLE on fq_user_role(ROLE_ID);

create index FK_USER_ROL_REFERENCE_USERS on fq_user_role(USER_ID);

插入数据:insert into

1、所有的表名、字段名的引号去掉

2、日期时间修改

3、字段对应参数由一对多改成一对一

示例一

#一对多改成一对一,去引号

mysql:

insert into 'fq_role_permission'('ID','ROLE_ID','PERMISSION_ID') values(1316,13,58),(1317,13,59);

oracle:

insert into fq_role_permission(ID,ROLE_ID,PERMISSION_ID) values(1316,13,58);

insert into fq_role_permission(ID,ROLE_ID,PERMISSION_ID) values(1317,13,59);

示例二:

#时间格式修改

mysql:

insert into 'fq_user'('USER_ID','LOGIN_NAME','PASSWORD','REG_DATE')

values (1,'admin','159ae5f48f14e89f3f9f54dc995f1f276d472b54','25-05-2017 10:32:02');

oracle:

insert into fq_user(USER_ID,LOGIN_NAME,PASSWORD,REG_DATE,EMAIL)

values (1,'admin','159ae5f48f14e89f3f9f54dc995f1f276d472b54',to_date('25-05-2017 10:32:02', 'dd-mm-yyyy hh24:mi:ss'));

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值