尝试在" LOAD INFILE"中使用CONCAT和SET。

时间:2015-02-25 18:12:26

标签: mysql sql

我尝试使用CONCAT函数为表创建id。我有以下代码

LOAD DATA INFILE '/blah.txt'
    INTO TABLE blah
    CHARACTER SET utf8
    FIELDS TERMINATED BY '\t'
    LINES TERMINATED BY '\n'
    IGNORE 1 LINES
    (@a, @b, c, d, e, f)
    SET id=Concat(@a,'+',@b),a=@a,b=@b

我得到了结果

ERROR 1062 (23000): Duplicate entry '+' for key 'PRIMARY'

这意味着值无法传递给变量。但我不知道为什么。

1 个答案:

答案 0 :(得分:1)

我能想到的一个原因是你的txt文件中有空行会给@a& @b为null。

因此,id将变为'+'。如果有多个空行,则所有行都将生成id ='+'。因此,当MySQL尝试为主键列id插入重复条目时会出现此错误。