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

  • 相关阅读:
    HDU 1069 Monkey and Banana
    HDU 1029 Ignatius and the Princess IV
    HDU 1024 Max Sum Plus Plus
    Gym100923H Por Costel and the Match
    Codeforces 682C Alyona and the Tree
    Codeforces 449B Jzzhu and Cities
    Codeforces (ccpc-wannafly camp day2) L. Por Costel and the Semipalindromes
    Codeforces 598D (ccpc-wannafly camp day1) Igor In the Museum
    Codeforces 1167c(ccpc wannafly camp day1) News Distribution 并查集模板
    快乐数问题
  • 原文地址:https://www.cnblogs.com/Anidot/p/8463866.html
Copyright © 2011-2022 走看看