您好我有以下CSV格式
id (tab) creation_date
-------------------------
1 2012-05-04 15:26:45.000
2 NULL
对于我正在使用的导入:
load data local infile './test.csv' into table TEST fields terminated by '\t'
lines terminated by '\n'
IGNORE 1 LINES
(id,@creation_date)
SET
creation_date = nullif(@creation_date,'NULL');
但遗憾的是,NULL值(String)未被解释并在列中设置为NULL。相反,我收到关于数据截断的警告,并且插入了一个默认日期....
如何检查:String =“NULL”然后将NULL插入列?
答案 0 :(得分:0)
您可以使用“TRAILING NULLCOLS”将文件中的空值插入数据库。
例如:
load data
infile 'test1.csv'
APPEND
into table tab1
TRAILING NULLCOLS
(
id integer <data type> TERMINATED BY ',',
creation_date <data type>
)
答案 1 :(得分:0)
要小心,它是如此愚蠢,但我管理错误。 由于日期是行中的最后一列,并且没有'“'用于拆分列,因此mysql会解释具有尾随回车符的列!
解决方案:
load data local infile './test.csv' into table TEST fields terminated by '\t'
lines terminated by '\n'
IGNORE 1 LINES
(id,@creation_date)
SET
creation_date = nullif(@creation_date,'NULL\r');
我知道它看起来太脏了!
<强>编辑:强> 所以当然使用线路终端更明智;)
load data local infile './test.csv' into table TEST fields terminated by '\t'
lines terminated by '\r\n'
IGNORE 1 LINES
(id,@creation_date)
SET
creation_date = nullif(@creation_date,'NULL');
...也许有人会遇到同样的问题,并希望遵循我的路径:)
答案 2 :(得分:0)
使用 \N 插入 NULL 字符串,效果很好