• 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.将字段名称左右的''去掉。

  • 相关阅读:
    K折交叉验证
    浅谈python的第三方库——pandas(三)
    关于机器学习二分类问题的几个评估指标辨析
    浅谈python的第三方库——pandas(二)
    浅谈python的第三方库——pandas(一)
    【内核篇】Windows内核重要变量
    【逆向篇】分析一段简单的ShellCode——从TEB到函数地址获取
    【系统篇】从int 3探索Windows应用程序调试原理
    【编程篇】使用操作系统异常巧妙获取交叉链表的交点
    【灌水篇】为什么我们要拼搏北上广
  • 原文地址:https://www.cnblogs.com/Anidot/p/8463866.html
Copyright © 2020-2023  润新知