2016-04-21 56 views
3

我已經將一個mysql表格轉儲爲CSV。在這個CSV文件中,NULL值被寫爲\N
現在我想將這些數據導入到sqlite數據庫中,但是我無法告訴sqlite \N是空值。它將它視爲一個字符串,並將該列值存儲爲「\ N」而非NULL。Sqlite3 - 如何從csv導入NULL值

任何人都可以指導如何在sqlite中使用.nullvalue點命令。我無法將\N設置爲nullvalue。

sqlite> .show 
nullvalue: "" 
sqlite> .nullvalue \N 
sqlite> .show 
nullvalue: "N" 
sqlite> .nullvalue '\N' 
sqlite> .show 
nullvalue: "\\N" 
sqlite> .nullvalue "\N" 
sqlite> .show 
nullvalue: "N" 
sqlite> .nullvalue \\N 
sqlite> .show 
nullvalue: "\\N" 
sqlite> .nullvalue '\'N 
Usage: .nullvalue STRING 
sqlite> .nullvalue '\\'N 
Usage: .nullvalue STRING 
sqlite> .nullvalue \\N 
sqlite> .show 
nullvalue: "\\N" 
sqlite> 

這是nullvalue

sqlite> .import /tmp/mysqlDump.csv employee 
sqlite> select count(*) from employee where updatedon='\N'; 
94143 
sqlite> select count(*) from employee where updatedon is null; 
0 

我怎麼能告訴sqlite的治療\N爲NULL值的每一個值後的輸出?我不能使用空字符串作爲NULL值,因爲我的數據包含空字符串。

+0

相關的問題;同樣的事情,但對於MySQL負載:https://stackoverflow.com/questions/2675323/mysql-load-null-values-from-csv-data。以防萬一有人在辯論使用哪個數據庫,這是一個重要的考慮因素。 – DaveInCaz

回答

4

CSV文件只包含文本值。從CSV文件導入NULL值是不可能的。

要將\N值轉換爲空值,只需使用UPDATE算賬:

UPDATE employee SET updatedon = NULL WHERE updatedon = '\N'; 
+0

這是我得到的結論,謝謝 – DaveInCaz