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冲刺(团队)总结
团队成员及分工 姓名 学号 分工 陈家权 031502107 前端(消息模块) 赖晓连 031502118 前端(问答模块) 雷晶 031502119 服务器 林巧娜 031502125 前端(首页模 ...
- 车牌识别算法库EasyPR的使用
主要参考以下两个博客: http://blog.csdn.net/junmuzi/article/details/49888123 http://blog.csdn.net/Lucas66666/ar ...
- JSPatch 原理
原理 JSPatch用iOS内置的JavaScriptCore.framework作为JS引擎,但没有用它JSExport的特性进行JS-OC函 数互调,而是通过Objective-C Runtime ...
- 旧文备份:CANopen中SYNC的功能和使用
SYNC是CANopen管理各节点同步数据收发的一种方法,相当于网络节拍,基于同步的PDO按照这个网络节拍来执行实时数据的收发.SYNC属于生产/消费型通讯方式,网络中有且只有一个SYNC生产者,一般 ...
- mysubmail 短信报警
https://www.mysubmail.com/chs/documents/developer/YPWD84 文本文档 官网:www.mysubmail.com 操作流程:快速接入短信 AP ...
- 作死实验,删除libc.so.6
参考https://www.cnblogs.com/fjping0606/p/4551475.html https://www.cnblogs.com/weijing24/p/5890031.html ...
- 用户数以及psp
小组名称:好好学习 小组成员:林莉 王东涵 胡丽娜 宫丽君 项目名称: 记账本 alpha发布48小时以后用户数如何,是否达到预期目标,为什么,是否需要改进,如何改进(或理性估算). 首先我 ...
- IPV6 简单总结
1. 转帖别人的内容 来源:https://www.2cto.com/net/201112/114937.html 2. 本地用IPV6单播地址 (包括链路本地单播地址 和 站点本地单播地址) 2.1 ...
- shell 指令 摘录
作者: learner811 本文摘自网络 权限:用户 读写 ugoa rwx * useradd userdel groupadd groupmod usermod su sudo wh ...
- nilcms file类 简单文件缓存实现
实现简单的文件缓存,参照CI的部分设计,在这里记录一下子. class File { const CACHE_PATH = 'nil_file_cache'; /*其他函数省略了*/ /** * 获取 ...