前段时间公司项目数据库需要从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. 浅谈GIT

    浅谈GIT: 牛老师提出的git,于我而言,是一个陌生和新鲜的词汇,在此之前我从未听过git,按照老师的要求,我去搜索了关于git的介绍,有些看懂了,但大部分还是不懂得,在介绍中我了解git其实之前使 ...

  2. 个人作业2——APP案例分析

    产品:网易LOFTER(乐乎)   网易LOFTER是网易旗下图片社交APP,产品覆盖web及移动各端. 网易LOFTER社区内汇聚了多领域的品质生活家与生活达人,包含女神.明星.穿搭.文具.旅行.美 ...

  3. 基于CORBA/WEB技术构建三层体系结构的应用

    1 问题提出 在应用系统开发过程中,CLIENT/SERVER体系结构得到了广泛的应用 .其特点是,应用程序逻辑通常分布在客户和服务器两端,客户端发出数据资源访问请求,服务器端将结果返回客户端.但CL ...

  4. 解决在Mac上用pyenv安装python3失败的问题

    背景 前段时间在本地Mac系统上要跑一个python3写的压测脚本. Mac默认安装的是python2, 而且很多软件依赖的也是python2. 为了不影响现有系统其它软件, 当时安装了pyenv来实 ...

  5. app token session rsp

    引用:https://blog.csdn.net/jack85986370/article/details/51362278 一.登录机制 粗略地分析, 登录机制主要分为登录验证.登录保持.登出三个部 ...

  6. 用node研究axios前后端交互状态码规则

    研究状态码规则围绕我的脑袋有些时间了. 加上最近比较不忙,开始了这方面的研究. 后端用的是直接跑过的node框架,express.可以直接参考express官方网站:http://www.expres ...

  7. 【转】SQL SERVER 中 sp_rename 用法

    因需求变更要改表的列名,平常都是跑到Enterprise manager中选取服务器->数据库->表,然后修改表,这样太麻烦了,查了一下,可以用script搞定,代码如下: EXEC sp ...

  8. [转帖]InfiniBand技术和协议架构分析

    InfiniBand技术和协议架构分析 2017年06月06日 20:54:16 Hardy晗狄 阅读数:15207 标签: 云计算存储Infiniband 更多 个人分类: 存储云计算   版权声明 ...

  9. NOI2017 退役记

    OI生涯最后一篇游记写点不开心的让大家开心一下 Day -2(7.16) 上午的模拟赛奥妙重重. 下午也没怎么改题,看了一些新题,发现都不会,都看了下题解,发现大部分没看懂,好慌. 发现板子还没怎么复 ...

  10. mysql二进制日志的开启和使用

    二进制日志(BINLOG)记录了所有的ddl和dml语句,但不包括数据查询语句.语句以“事件”的形式保存,描述数据更改过程. 环境:win8   mysql5.6.23 1.mysql开启二进制日志 ...