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数据库服务器: ...
随机推荐
- 现代软件工程构建之法 前五章阅读感想&困惑
第一章 第一节 新时代中国的IT产业市场规则不规范,书中提到社会上有个别软件公司的软件一定要卸载别家公司的软件才能运行,我这里感到疑惑---————是不是说如果 一间软件公司他能做出一个像微软操作系统 ...
- git的使用(本地及关联远程,上传到远程)
前言:本想这个博客就是用来交作业的,因为作业,学习了git ,现在觉得,既然有这个博客了,就好好用一下吧,也给自己养成个好习惯,就也来记录一下吧,关于git的本地仓库上传,本地与远程的关联,从本地上传 ...
- PAT 甲级 1150 Travelling Salesman Problem
https://pintia.cn/problem-sets/994805342720868352/problems/1038430013544464384 The "travelling ...
- 使用pt-query-digest,找到不是很合适的sql
pt-query-digest 1. 概述 索引可以我们更快速的执行查询,但是肯定存在不合理的索引,如果想找到那些索引不是很合适的查询,并在它们成为问题前进行优化,则可以使用pt-query-dig ...
- js 函数讲解
函数 来自<JavaScript 标准参考教程(alpha)>,by 阮一峰 目录 概述 函数的声明 函数的重复声明 圆括号运算符,return 语句和递归 第一等公民 函数名的提升 不能 ...
- requests爬取豆瓣热门电视剧
# *_*coding:utf-8 *_* import requests payload = {'key1': 'value1', 'key2': 'value2'} headers = {'use ...
- ERROR 1698 (28000): Access denied for user 'root'@'localhost' 解决方法
之前MySQL服务端本机上使用密码登陆root账号是没有问题的,但是今天不知道是因为动了哪里,登陆失败并有这个错误代码: ~$ mysql -u root -p Enter password: ERR ...
- 使用docker-compose编排django、mysql实战
背景: 本萌最近在部署自己开发的项目的时候发现同一套代码上传到服务器上后,部分功能莫名其妙的有点问题,服务器的各项配置都没有做过变动,所以想把项目转战到docker. 奈何刚接触docker,很多地方 ...
- IPV6 国内进展情况
国家下一代互联网产业技术创新战略联盟(以下简称“产业联盟”),近日在北京发布了我国首份IPv6业务用户体验监测报告(以下简称<报告>).该<报告>监测了我国固定宽带的IPv6普 ...
- Oracle12c 之后的路线图
Oracle18c 以及 Oracle19c 的原始版本信息 装载一下别人的博客内容 http://www.cnblogs.com/zhjh256/p/9816499.html 感谢原作者.. 另外 ...