我想将CSV文件导入MySQL 5.7,并希望加载NULL值。
我已阅读MySQL load NULL values from CSV data
如果我使用相同的示例表和数据,则可以正常工作。 但是,如果我尝试导入以下数据:
1,2,3
1,2,3,4,
1,2,3,4,5
然后输出为:Error Code: 1366. Incorrect integer value: '' for column 'five' at row 2
表创建脚本:
create table moo(
one int not null,
two int not null,
three int null,
four int null,
five int null);
我将nullif表达式用于可为空的列:
LOAD DATA INFILE '/test-moo.txt' INTO TABLE moo
FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n'
(one, two, @vthree, @vfour, @vfive)
SET three = nullif(@vthree,''),
four = nullif(@vfour,''),
five =nullif(@vfive,'');
这是一个错误还是我缺少什么?似乎只有最后一列是错的。
答案 0 :(得分:0)
我已经找到我问题/答案的答案。似乎行分隔符不正确。我正在Windows环境下工作,因此应该是 \ r \ n 而不是 \ n 。
因此,在更正它之后,它就可以正确处理:
LOAD DATA INFILE '/test-moo.txt' INTO TABLE moo
FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n'
(one, two, @vthree, @vfour, @vfive)
SET three = nullif(@vthree,''),
four = nullif(@vfour,''),
five =nullif(@vfive,'');