2014-02-13 138 views
2

我的影片格式像這樣的CSV:插入到多個表從一個CSV

MasterSKU, Location, Notes, SubSku1, SubSku2, SubSku3, SubSku4, SubSku5, ... 

我有一個MySQL數據庫這樣設計兩個表:

CREATE TABLE `master_sku` (
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `master_sku` varchar(150) NOT NULL, 
    `bin` varchar(150) DEFAULT NULL, 
    `note` varchar(250) DEFAULT NULL, 
    `createdtime` datetime DEFAULT CURRENT_TIMESTAMP, 
    PRIMARY KEY (`id`) 
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=latin1; 

CREATE TABLE `sub_sku` (
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `master_sku_id` int(11) NOT NULL, 
    `sub_sku` varchar(150) NOT NULL, 
    `createdtime` datetime DEFAULT CURRENT_TIMESTAMP, 
    PRIMARY KEY (`id`) 
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=latin1; 

所以我需要do允許用戶上傳CSV,然後分別將值插入master_sku和sub_sku。一些master_skus不會有子skus,有些會有很多sub skus。

有沒有辦法用外鍵同時插入到兩個表中?

我還希望用戶能夠在稍後添加一個帶有附加子SKU的CSV,它可以匹配現有的master_skus,並且只插入新的子SKUS。

回答

1

您不能同時插入行,但可以確保master_skus和sub_skus中的行將插入到數據庫中,否則兩者都將失敗。這可以通過使用數據庫事務來實現。