前段时间公司项目数据库需要从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脚本的更多相关文章

  1. mysql数据库每个表的备份脚本

    对mysql数据库中的每张表进行按日期备份,思想是:先把每张表的表名取出取出,然后通过for循环去对每个表进行按日期备份 [root@ZFVM-APP-- backup]# vim dataname. ...

  2. jeecg安装——mysql数据库创建+手动执行初始化脚本

    国产的开源项目官方文档写得那么详细,已经是很厚道了,可惜俺这种菜鸟还是会碰到各种"小"问题,做个笔记先! 1.新建数据库: CREATE DATABASE jeecg DEFAUL ...

  3. 检查mysql数据库是否存在坏表脚本

    #!/bin/bash #此脚本的主要用途是检测mysql服务器上所有的db或者单独db中的坏表 #变量说明 pass mysql账户口令 name mysql账号名称 data_path mysql ...

  4. MySQL 数据库慢查询日志分析脚本

    这个脚本是基于pt-query-digest做的日志分析脚本,变成可视化的格式. 目录结构是 ./mysql_data/log./mysql_data/log/tmp./slow_query # co ...

  5. 可以自动安装mysql数据库的一个shell脚本

    发布:thatboy   来源:脚本学堂     [大 中 小] 分享一例shell脚本,可以实现mysql数据库的自动安装,脚本写的不错,无论是用来学习,还是生产环境中应用,都是不错的,有需要的朋友 ...

  6. 一个备份MySQL数据库的简单Shell脚本(转)

    Shell脚本是我们写不同类型命令的一种脚本,这些命令在这一个文件中就可以执行.我们也可以逐一敲入命令手动执行.如果我们要使用shell脚本就必须在一开始把这些命令写到一个文本文件中,以后就可以随意反 ...

  7. [转]一个备份MySQL数据库的简单Shell脚本

    本文翻译自 iSystemAdmin 的 <A Simple Shell Script to Backup MySQL Database> Shell脚本是我们写不同类型命令的一种脚本,这 ...

  8. Navicat工具导出mySQL数据库某个视图结构的.sql脚本

    用Navicat工具怎么都导不出来mySQL数据库的某个视图.sql脚本,即使导出来也只是包含视图记录,不包含视图结构.经过一番研究,终于克服,操作如下: 1.在某个数据库中,新建备份,如下图 2.选 ...

  9. MYSQL数据库迁移到ORACLE数据库

    一.环境和需求1.环境 MySQL数据库服务器: OS version:Linux 5.3 for 64 bit mysql Server version: 5.0.45 Oracle数据库服务器: ...

随机推荐

  1. java 事务

    之前的事务介绍基本都是数据库层面的事务,本文来介绍一下J2EE中和事务相关的内容,在阅读本文之前,希望读者对分布式有一定的了解. 关于事务的基础知识这里不再详细介绍,想要了解的同学可以在我的博客中阅读 ...

  2. MAVEN教程--01安装|创建|解释

    Maven是一个采用纯Java编写的开 源项目管理工具.Maven采用了一种被称之为project object model (POM)概念来管理项目,所有的项目配置信息都被定义在一个叫做POM.xm ...

  3. java对文件的操作

    1.按字节读取文件内容2.按字符读取文件内容3.按行读取文件内容 4.随机读取文件内容 public class ReadFromFile {     /**      * 以字节为单位读取文件,常用 ...

  4. 13种细分类型的TCP重传小结(一张表总结4.4内核所有TCP重传场景)

    具体每种重传类型的wireshark示例解说参考前文 来自为知笔记(Wiz)

  5. 转 JS模块化简单实现

    git示例地址:https://github.com/wufenfen/requireJS-Demo.git

  6. 搭建企业级Docker Registry -- Harbor

    Harbor 是一个企业级的 Docker Registry,可以实现 images 的私有存储和日志统计权限控制等功能,并支持创建多项目(Harbor 提出的概念),基于官方 Registry V2 ...

  7. ORA-03113:通信通道的文件结尾-完美解决方案

    ORA-03113:通信通道的文件结尾-完美解决方案   oracle 文档中对这个错误这样解释: ORA-03113 错误就是说连接到数据库的网络中断了.有些错误由于频繁出现.原因复杂而被 Orac ...

  8. MachineLearning Exercise 4 :Neural Networks Learning

    nnCostFunction 消耗公式: a1 = [ones(m,) X]; z2 = a1*Theta1'; pre = sigmoid(a1*Theta1'); a2 = [ones(m,) p ...

  9. Everyone is tester

    有一本书叫<人人都是产品经理>,作者在书中介绍了在做产品的过程中学到的思维方式和做事方式,受到行业大众的认可 作为一名测试老鸟,我想说,其实Everyone is tester     为 ...

  10. word2010激活工具使用方法

    1.关闭杀毒,关闭正打开着的word文档 2.执行Activator_v1.2.exe-->Activation Office 2010VL -->按1 -->完毕. 3.打开wor ...