mysql数据库脚本改为oracle脚本
前段时间公司项目数据库需要从mysql转为oracle,所以需要修改下原有的mysql脚本。
有两种方式:第一种,使用工具进行两种数据库的转换。第二种,手动修改数据库脚本。
第二种方法很笨,但能学习下mysql和oracle数据库的sql语法区别。
现总结如下:
1.注释修改,mysql的注释可以直接写在建表语句的字段后面,而oracle的注释需要单独写个语句。
eg:
mysql:
CREATE TABLE `t_alarm_contact` (
`contact_id` varchar(32) NOT NULL COMMENT '联系人编号',
`threshold_id` varchar(32) NOT NULL COMMENT '阈值设置编号',
PRIMARY KEY (`contact_id`,`threshold_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='预警联系关系表';
oracle:
CREATE TABLE `t_alarm_contact` (
`contact_id` VARCHAR2(32) NOT NULL,
`threshold_id` VARCHAR2(32) NOT NULL,
PRIMARY KEY (`contact_id`,`threshold_id`)
);
COMMENT ON COLUMN t_alarm_contact.contact_id is '联系人编号';
COMMENT ON COLUMN t_alarm_contact.threshold_id is '阈值设置编号';
COMMENT ON TABLE t_alarm_contact is '预警联系关系表';
2.数据类型修改:
mysql oracle
varchar VARCHAR2
datetime DATE
bigint(32) NUMBER(32)
int(N) (N<6) INTEGER
int(N) (N>=8) LONG
3.索引转换:
key->index
unique key -> unique index
eg:
mysql:
CREATE TABLE `t_txn_quick` (
`txn_no` varchar(64) NOT NULL COMMENT '平台交易流水号',
`txn_date` varchar(8) NOT NULL COMMENT '平台交易日期,取值:yyyyMMdd',
……
PRIMARY KEY (`txn_no`),
UNIQUE KEY `mcht_no` (`mcht_no`,`tran_no`),
KEY `i_txn_date` (`txn_date`),
KEY `i_txn_acct` (`txn_no`,`acct_no`),
KEY `i_pmc_status` (`pmc_code`,`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='快捷支付交易流水表';
oracle:
CREATE TABLE `t_txn_quick` (
`txn_no` VARCHAR2(64) NOT NULL,
`txn_date` VARCHAR2(8) NOT NULL,
……
PRIMARY KEY (`txn_no`)
);
CREATE UNIQUE INDEX ui_mcht_no_tran_no on t_txn_quick(mcht_no, tran_no);
CREATE INDEX i_txn_date on t_txn_quick(txn_date);
CREATE INDEX i_txn_acct on t_txn_quick(txn_no,acct_no);
CREATE INDEX i_pmc_status on t_txn_quick(pmc_code,status);
4.自增序列 AUTO_INCREMENT
`id` int NOT NULL AUTO_INCREMENT,
改为:
id VARCHAR2(64) NOT NULL,
5.将字段名称左右的''去掉。
mysql数据库脚本改为oracle脚本的更多相关文章
- mysql数据库每个表的备份脚本
对mysql数据库中的每张表进行按日期备份,思想是:先把每张表的表名取出取出,然后通过for循环去对每个表进行按日期备份 [root@ZFVM-APP-- backup]# vim dataname. ...
- jeecg安装——mysql数据库创建+手动执行初始化脚本
国产的开源项目官方文档写得那么详细,已经是很厚道了,可惜俺这种菜鸟还是会碰到各种"小"问题,做个笔记先! 1.新建数据库: CREATE DATABASE jeecg DEFAUL ...
- 检查mysql数据库是否存在坏表脚本
#!/bin/bash #此脚本的主要用途是检测mysql服务器上所有的db或者单独db中的坏表 #变量说明 pass mysql账户口令 name mysql账号名称 data_path mysql ...
- MySQL 数据库慢查询日志分析脚本
这个脚本是基于pt-query-digest做的日志分析脚本,变成可视化的格式. 目录结构是 ./mysql_data/log./mysql_data/log/tmp./slow_query # co ...
- 可以自动安装mysql数据库的一个shell脚本
发布:thatboy 来源:脚本学堂 [大 中 小] 分享一例shell脚本,可以实现mysql数据库的自动安装,脚本写的不错,无论是用来学习,还是生产环境中应用,都是不错的,有需要的朋友 ...
- 一个备份MySQL数据库的简单Shell脚本(转)
Shell脚本是我们写不同类型命令的一种脚本,这些命令在这一个文件中就可以执行.我们也可以逐一敲入命令手动执行.如果我们要使用shell脚本就必须在一开始把这些命令写到一个文本文件中,以后就可以随意反 ...
- [转]一个备份MySQL数据库的简单Shell脚本
本文翻译自 iSystemAdmin 的 <A Simple Shell Script to Backup MySQL Database> Shell脚本是我们写不同类型命令的一种脚本,这 ...
- Navicat工具导出mySQL数据库某个视图结构的.sql脚本
用Navicat工具怎么都导不出来mySQL数据库的某个视图.sql脚本,即使导出来也只是包含视图记录,不包含视图结构.经过一番研究,终于克服,操作如下: 1.在某个数据库中,新建备份,如下图 2.选 ...
- MYSQL数据库迁移到ORACLE数据库
一.环境和需求1.环境 MySQL数据库服务器: OS version:Linux 5.3 for 64 bit mysql Server version: 5.0.45 Oracle数据库服务器: ...
随机推荐
- 项目Beta冲刺(团队)第六天
1.昨天的困难 可以获得教务处通知栏的15条文章数据了,但是在显示的时候出了问题. 私信聊天的交互还没研究清楚 2.今天解决的进度 成员 进度 陈家权 研究私信模块 赖晓连 研究问答模块 雷晶 研究服 ...
- HDU 4529 郑厂长系列故事——N骑士问题 状压dp
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4529 郑厂长系列故事--N骑士问题 Time Limit: 6000/3000 MS (Java/O ...
- 17_常用API_第17天(包装类、System、Math、Arrays、大数据运算)_讲义
今日内容介绍 1.基本类型包装类 2.System类 3.Math类 4.Arrays类 5.大数据运算 01基本数据类型对象包装类概述 *A:基本数据类型对象包装类概述 *a.基本类型包装类的产生 ...
- mongodb的命令介绍
db.help() 查看库级别的命令 db.stats() 查看数据库状态 db.version() 查看数据库版本 db.serverStatus() 查看数据库服务器状态 db.mycoll.he ...
- Robot Framework 教程 (6) - 使用条件表达式
本篇文章,主要对如何在Robot Framework中使用条件表达式做过程控制作说明. 按照Robot Framework的官方文档介绍,Robot Framework并不建议在TestCase或Ke ...
- VMIC
1. wmic 的简介 wmic -? [全局开关] <命令> 可以使用以下全局开关: /NAMESPACE 别名在其上操作的命名空间的路径. /ROLE 包含别名定义的角色的路径. /N ...
- how to insert js to iframe page in order to disabled open new page/window
how to insert js to iframe page in order to disabled open new page/window js 禁用 iframe 中的页面打开新页面 htt ...
- 用友时空B/S表单外挂(接口)程序操作说明文档
用友时空B/S表单外挂(接口)程序 一.B/S表单接口需求 众所周知,用友时空KSOA支持B/S架构.且移动商务.在线门店,都是完全基于B/S架构的. B/S架构的优越性在于没有本地客户端和本地数据, ...
- 如何杀掉Monkey测试
1.adb shell 2.ps | grep monkey 3.kill pid 然后可以看到手机进程中的monkey进程被杀死了,再执行ps | grep monkey,就会发现没有monkey进 ...
- 2018 焦作icpc现场赛总结
Day 0 没有直达焦作的飞机,所以选择了先到新郑机场,再转乘城际列车.城际列车猜是专门给学生开通的吧,每天只有来和回一共两趟(所以机票选择的余地也不多).买的时候只有无座票了,本来以为会一直站着,但 ...