2010-11-13 73 views
2

我從MySQL導入數據到CSV。現在我試圖將它導入到另一臺機器的MySQL中。但我想保留原來自動增加的id的值。導入CSV到MySQL而不會丟失自動增加字段的數據

我嘗試這樣做:

LOAD DATA INFILE '/tmp/region.csv' 
INTO TABLE regions 
FIELDS TERMINATED BY ',' 
ENCLOSED BY '"' 
ESCAPED BY '\\' 
LINES TERMINATED BY '\n' 
IGNORE 1 LINES 

(id,name,parent_id,level) 

但這並沒有工作。任何幫助?

+0

你能以什麼方式沒有奏效說? – 2010-11-13 11:44:27

回答

2

您所說的「自動增加」字段是「自動增加」。爲了保留它,臨時修改表格以不在ID列上使用AUTO INCREMENT,然後一旦導入,將其改回。

E.g

ALTER TABLE `table_name` CHANGE `id` `id` INT(11) UNSIGNED NOT NULL; 

然後:

ALTER TABLE `table_name` CHANGE `id` `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY; 
+0

我在想是否有一些開關來禁用它一會兒,在sqlserver中有一個ddl來解決這個問題,當批量插入數據到數據庫 – mlzboy 2010-11-13 13:32:48

0

您可以嘗試使用不帶自動遞增屬性的列'id'創建目標表,然後加載csv文件,然後將自動增量屬性添加到該列。

相關問題