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'));
mysql脚本转成oracle脚本_mysql脚本手动修改成oracle脚本相关推荐
- mysql初始化脚本建表_mysql新建表修改表sql脚本
新建表语句: -- ----------------------------------------------- -- 全量脚本 -- ------------------------------- ...
- mysql怎么把字符变成数字_mysql将字符转换成数字
在操作mysql时,经常需要将字符转换成数字,这一步虽然简单,但不常用的话也很容易忘记,现将在网上找到的方法记录如下: 1.将字符的数字转成数字,比如'0'转成0可以直接用加法来实现 例如:将pony ...
- mysql查询的结果拼接字符串_MySql查询结果拼接成字符串
背景:做SQL查询时会经常需要,把查询的结果拼接成一个字符串. 解决方法: 通过 group_concat 函数 1.正常查询 如下: select id result from ctp_enum_i ...
- mysql 列数据显示转成行数据显示_Mysql的列修改成行并显示数据的简单实现
创建测试表: DROP TABLE IF EXISTS `test`; CREATE TABLE `test` ( `year` int(11) DEFAULT NULL, `month` int(1 ...
- mysql 查看当前数据库编码方式_MySQL查看与修改当前数据库编码的方法
MySQL中,数据库的编码是一个相当重要的问题,有时候我们需要查看一下当前数据库的编码,甚至需要修改一下数据库编码. 查看当前数据库编码的SQL语句为: mysql> use xxx Datab ...
- mysql查看数据库事务隔离级别_MySQL查看和修改事务隔离级别的实例讲解
查看事务隔离级别 在 MySQL 中,可以通过show variables like '%tx_isolation%'或select @@tx_isolation;语句来查看当前事务隔离级别. 查看当 ...
- mysql添加字段基本语法格式_MySQL添加字段 修改字段 删除字段-Mysql常用命令-吾爱编程网...
作为程序员mysql的操作是必须要学会的,有时候我们需要使用命令行对数据表进行操作,接下来吾爱编程就为大家介绍一下MySQL 添加字段.修改字段.删除字段等常用命令,有需要的小伙伴可以参考一下: 1. ...
- win11开始菜单怎么修改成win10风格 Windows11开始菜单修改成win10右键风格的设置方法
有很多朋友升级到win11系统之后不是特别喜欢右键菜单,因为经常需要多点击一次显示更多选项,很不舒服.大家就想知道如何修改回原来win10的右键菜单,其实还是有方法的,除了使用软件以外,今天小编就来给 ...
- linux将中文语言改成英文版,将Linux中文语言修改成英文的具体操作方法及报错解决...
-bash: warning: setlocale: LC_CTYPE: cannot change locale (EN_US.UTF-8) 把linux系统从中文设置英文字符集后发生以下报错 首先 ...
最新文章
- android录像增加时间记录(源码里修改)
- LVS(Linux Virtual Server)三种负载均衡模型和十种调度的简单介绍
- 微信jssdk ajax 获取签名,【Golang版】微信access_token、jsapi_ticket、signature签名算法生成示例,开箱即用...
- input标签内容改变的触发事件
- makefile文件简要介绍
- 8、Java Swing JCheckBox:复选框组件
- Linux cat指令(用于连接文件并打印到标准输出设备上)
- san-hot-loader 应用及原理实现
- LeetCode450题—— 删除二叉搜索树中的节点
- 汇编语言第三章检测题
- Jmeter基础之JMeter参数化补充练习
- 代理类 invoke方法没有返回值怎么办_何为动态代理?
- eclipse如何添加Memory Analyzer
- PHP中date()日期函数有关参数整理
- matlab 2014a安装方法以及解决打包失败的问题
- 树莓派4B-Python-控制WS2812
- STM32——滴答定时器设置1us问题
- Linux下堆漏洞利用(off-by-one)
- 关于抽象类的实验(java 内部类、多态等练习)
- xiangmu--WAD
热门文章
- 小学一年级第一次上计算机课,小学一年级上册信息技术教案【三篇】
- 淮阳一高2021高考成绩查询,周口教育网2021年淮阳中招成绩查询系统
- html语言的前景,html5就业前景
- java hql多条件查询_Hibernate结合JPA编写通用泛型多条件查询
- word公式插件_添加office小插件,让办公更高效
- java专业日报800字,JAVA每日学习日报 7.8
- 五、开始学习Excel函数,效率快速提高
- SemEval-2022组队参赛啦!八节课带你入门全球最大的语义测评大赛
- 综合LSTM、transformer优势,DeepMind强化学习智能体提高数据效率
- 一文解析激光雷达中时序融合的研究现状和发展方向