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'));
mysql脚本手动修改成oracle脚本的更多相关文章
- MySQL LIMIT 如何改写成Oracle limit
mysql代码 SELECT * FROM tablename LIMIT 100,15 首先,Oracle是不支持limit的.个人感觉分页方面mysql比Oracle要好些.处理代码如下: sel ...
- Mysql表结构转成Oracle
Navicat数据库连接工具
- MyBatis项目实战 快速将MySQL转换成Oracle语句
一.前言 因项目需求,小编要将项目从mysql迁移到oracle中 ~ 之前已经完成 数据迁移 (https://zhengqing.blog.csdn.net/article/details/103 ...
- sql server t-sql脚本转成oracle plsql
将一份SQL SERVER数据库生成的T-SQL脚本,转成ORACLE的PL/SQL,其复杂繁琐程度,远远出乎我的意料. 这份SQL SERVER脚本,里面有表,有视图,还有存储过程,以及一些自定义函 ...
- Loadrunner中web脚本转成JavaVuser脚本
先用web方式录制好脚本,进行参数化,关联验证等操作,之后执行以下步骤: 1)将要转换的web脚本复制出来并保存到web.txt中2)参数界定符部分需要由{}手动修改成<>,包括参数化的和 ...
- mysql数据库脚本改为oracle脚本
前段时间公司项目数据库需要从mysql转为oracle,所以需要修改下原有的mysql脚本. 有两种方式:第一种,使用工具进行两种数据库的转换.第二种,手动修改数据库脚本. 第二种方法很笨,但能学习下 ...
- 大幅度改变celery日志外观,修改成日志可点击跳转和鲜艳五彩日志,解决脚本中已添加handler的logger和框架日志重复记录问题。
大幅度改变celery日志外观,修改成日志可点击跳转和鲜艳五彩日志,解决脚本中已添加handler的logger和框架日志重复记录问题.打猴子补丁. 先把脚本中的所有logger的handlers全部 ...
- Mysql - 增量脚本中修改字段属性
在增量部署系统的时候, 经常需要提供增量修改的脚本, 如果是修改存储过程或者自定义函数, 那还是很好改的, 不用担心表功能收到影响. 如果是改字段呢? 首先不知道字段是不是已经在系统里面, 没有的话, ...
- oracle 脚本创建数据库的相关文章,教程,源码
学步园推荐专题: 关于oracle 脚本创建数据库的相关文章 文章标题 文章链接 文章简介 oracle命令行创建数据库的示例脚本 http://www.xuebuyuan.com/964527.ht ...
随机推荐
- IoC之AutoFac(一)——简单使用和组件注册
阅读目录 一.AutoFac简单使用 二.注册 2.1 注册方式 2.2 带参数注册 回到顶部 一.AutoFac简单使用 1 namespace AutofacDemo 2 { 3 class Pr ...
- Install Redis 3.2 on Ubuntu
Install Redis 3.2 on Ubuntu It’s very easy to install Redis 3 on Ubuntu 16, just need to add PPA rep ...
- iOS开发之Found a swap file by the name ".podfile.swp" owned by: Netban dated:...file name: ~N...
Found a swap file by the name ".podfile.swp" owned by: Netban dated: Fri Mar 24 13:57:27 2 ...
- MySQL的reset master
删除index文件中列出的所有二进制日志文件,将index文件清空,并创建一个新的二进制日志文件. 使用这个命令要很小心,以免丢失二进制日志文件数据. reset master也会清空gtid_pur ...
- ffmpeg-hls实现分析
[时间:2018-05] [状态:Open] [关键词:流媒体,stream,HLS, ffmpeg, demuxer,avformat] 0 引言 本文将关注于FFmpeg中的HLS相关实现,相关代 ...
- [转]Mybatis foreach 批量操作
原文地址:https://blog.csdn.net/jason5186/article/details/40896043 foreach属性属性 描述item 循环体中的具体对象.支持属 ...
- ViZDoom深度预测(Depth Prediction)
代码:github.com/huangshiyu13/ViZDoomDepth 图片被分成3x6的区域,利用模型预测每个区域的平均深度,效果如下图:
- java使用代理请求https
我本来在我本机写的代码,本机电脑是可以连外网没限制,对于https和http都可以.但是放在linux服务器上后,因为VM限制了不能访问外网,而且有ssl验证所以就一直报错,要么是连不上线上请求,要么 ...
- go对json对象的生成和解析
https://blog.csdn.net/benben_2015/article/details/78917374
- Android用户点击返回按钮两次退出整个APP
最近的APP项目有一个需求就是连续点击两次返回按钮,退出整个APP,而不是返回到上一个页面,这个连续是有时间限制的,在我的项目里,我设置成2秒钟,如果两秒之内点击了两次,就代表用户想要退出整个APP, ...