2012-02-14 64 views
2

當我將一個csv文件導入MySQL(phpmyadmin)時,對於文件中未指定但缺省值爲null的所有整數值,會出現錯誤消息:#1366 - Incorrect integer value: '' for column 'id' at row 1.。我有這些問題:將空值的csv文件導入到phpmyadmin中

a。如果數據庫表的ID已定義爲自動增量,如何導入沒有指定row-id的csv文件?

b。在csv文件或phpmyadmin中的表列規範中,對於缺省值爲null的整數列,我需要什麼?

以下是來自csv文件的示例行。

id,year,month,date,day,description,ranking 
,,3,1,,, 
,,3,2,,, 
,,3,3,,, 
,,3,4,,, 
,,3,5,,, 
,,3,6,,, 
,,3,7,,, 
,,3,7,,"Saints Perpetua and Felicity, Martyrs", 
,,3,8,,, 
,,3,8,,"Saint John of God, Religious", 
,,3,9,,, 
,,3,9,,"Saint Frances of Rome, Religious", 
,,3,10,,, 

導致錯誤的列是ID,今年排名。它們都是整數列。列ID是自動增量。其他列是缺省值爲NULL的INT(11)。謝謝。

回答

1

CSV沒有「空白」的概念。無法區分爲空的字段和具有合法空值的字段(例如空字符串)。在查詢插入之前加載它們時,您必須對行進行按摩,以用適當的NULL替換任何「空字符串」。

例如,

$row = fgetcsv(...); 
$row[0] = 'NULL'; 
+1

我爲csv中的每個空白字段添加了NULL,並且這個工作。 – user823527 2012-02-14 20:58:12