csv导入后的空值

时间:2010-10-10 04:50:06

标签: mysql

考虑一个存储SSN和DOB的表。

CREATE TABLE fbi
(
     ssn BIGINT, 
     dob DATE
)

数据已加载到表格中:

LOAD DATA LOCAL INFILE C:\test.csv
INTO TABLE fbi
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\r\n';


SELECT * FROM fbi;

显示DOB的空值。我不明白这个错误。

"ssn","dob"
  5,"1952-11-15"
  6,"1973-12-23"
 6,"1951-12-23"
 1,"1962-03-21"

1 个答案:

答案 0 :(得分:3)

它很可能与您的csv文件中的日期格式有关。 MySQL喜欢yyyy-mm-dd格式的日期。例如2010-10-09。您可以通过在导入后立即在MySQL命令控制台中发出以下命令来获取更多信息:

show warnings;

更新:

我看到你的日期字段被引用了。如果您有引用日期,则需要通过向导入命令添加OPTIONALLY ENCLOSED BY '"'来告诉MySQL(请参阅LOAD DATA INFILE的MySQL手册)。试试这个:

LOAD DATA LOCAL INFILE C:\test.csv
INTO TABLE fbi
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\r\n';
顺便说一句:我希望你发布的那些SSN是以某种不可恢复的方式伪造或破坏的。