2009-10-30 128 views
2

我想将Oracle架构从Oracle迁移到MySQl,那么是否有免费工具可用于此任务?从Oracle迁移到MySQL的工具

我在Oracle SQL脚本中有“Create table”语句,但它包含唯一约束和一个外键。 MySQL有MyISAM存储引擎,所以不支持外键。

如何解决这个问题?

示例Oracle创建语句:

CREATE TABLE channels 
(
    obt_id   NUMBER(19) PRIMARY KEY, 
    discriminator  VARCHAR2(64) NOT NULL 
        CONSTRAINT check_channel_discriminator CHECK (discriminator IN ('CHANNEL','SALES_CHANNEL')), 
    chan_id   VARCHAR2(255), 
    description  VARCHAR2(255), 
    name    VARCHAR2(255) NOT NULL, 
    obt_version  VARCHAR2(255), 
    fk2_channel  NUMBER(19) 
        CONSTRAINT fk_channel_channel REFERENCES channels(obt_id) 
); 

CREATE TABLE object_types 
(
    obt_id     NUMBER(19) PRIMARY KEY, 
    enum_value    VARCHAR2(64) NOT NULL, 
    external_name    VARCHAR2(64) NOT NULL, 
    description    VARCHAR2(255), 
    business_validation  NUMBER(1) DEFAULT 0, 
    start_date_time   DATE DEFAULT to_date('01011900','DDMMYYYY'), 
    end_date_time    DATE DEFAULT to_date('01014712','DDMMYYYY'), 
    mut_date_time    DATE DEFAULT SYSDATE, 
    mut_user     VARCHAR2(32) DEFAULT USER, 
    CONSTRAINT    object_types UNIQUE (external_name,start_date_time,end_date_time) 
); 
+0

如何检查外键约束,唯一约束? – Rachel

回答

2

我还没有听到一个单一的工具,它可以帮助你在问什么的。这并不意味着它不存在,但是,它可能更容易,也更不容易出错,可以使用现有的Oracle脚本并手动创建适当的MySQL脚本。在我遇到的每个项目上,DBA都负责这种类型的数据迁移,并且他们一直都是手动完成的。

编辑:

话虽这么说,我做了一个快速谷歌搜索,有声称要做到这一点(有代价的)一些程序。例如:

Oracle to MySQL

Data loader

DBConvert

我显然会告诫不要使用第三方工具,在开始之前确保你回来了一切。

+0

如何检查外键约束,唯一约束? – Rachel

+0

这就是为什么我建议手动进行。你可以自己管理关系。当您修改脚本时,您可以根据需要删除约束和fkeys。 – northpole

+0

哦,好的。我现在明白你的观点。 – Rachel