2009-10-30 158 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