zoukankan      html  css  js  c++  java
  • 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.将字段名称左右的''去掉。

  • 相关阅读:
    关于万门大学api接口反爬措施的解决
    磁盘
    汇编实验九
    汇编语言第六章-包含多个段的程序
    汇编实验四
    汇编实验二
    汇编语言实验四
    汇编语言第四章——第一个程序
    汇编语言第三章——寄存器(内存访问)
    汇编语言第二张寄存器
  • 原文地址:https://www.cnblogs.com/Anidot/p/8463866.html
Copyright © 2011-2022 走看看