2012-08-30 18 views
0

考慮我有2個數據庫具有相同的字段。
第一個數據庫是出口數據,
第二個數據庫充當副本擁有數據庫MySQL導出導入ID爲auto_increment for Foreign Key

數據庫1將導出數據庫文件格式CSV,從PHP腳本輸出。
數據庫2將從php腳本導入數據庫。

每個數據庫中有兩個表與外鍵有關係。

table_transaction

create table `table_transaction` (
    `id` int auto_increment primary key 
    `date` DATE default now() 
) engine = innoDB; 

樣本數據

id | date 
1 | 2012-12-31 
2 | 2012-12-30 
3 | 2012-12-29 

table_transaction_product

create table `table_transaction_product` (
    `id` int auto_increment primary key 
    `product` string NOT NULL default '' /* Product Name */ 
    `fk_transaction` int auto_increment NOT NULL 

    foreign key (`fk_transaction`) 
     references table_transaction(`id`) 
     on update cascade 
     on delete cascade 
) engine = innoDB; 

樣本數據

id | product  | fk_transaction 
1 | shampoo  | 1 
2 | soap  | 1 
3 | conditioner | 1 

這是樣品從數據庫1中導出CSV和將被導入到表2,使出口事務ID 1.

insert into table_transaction (id, date) values (1, '2012-12-31'); 
insert into table_transaction_product (id, product, fk_transaction) 
    values 
     (1, 'shampoo', 1), 
     (2, 'soap', 1), 
     (3, 'conditioner', 1) 

問題
由於ID兩個表是auto_increment。是不是會有任何問題,我手動插入表。 id並崩潰了auto_increment mysql系統?但是如果沒有輸入ID並讓我們決定它,那麼外鍵將不匹配。我該怎麼辦?

謝謝。

+0

會複製爲你工作? http://dev.mysql.com/doc/refman/5.0/en/replication.html –

+0

@MoeTsao我認爲不,因爲出口導入必須從PHP腳本完成。 – GusDeCooL

回答

1

它應該不會引起問題,但我建議更改第二個數據庫上的表定義以刪除auto_increment標誌。

+0

如果只是備份,這應該不會受到影響。 –