SQL - LOAD DATA INFILE错误

时间:2013-12-19 16:39:04

标签: mysql csv

我正在尝试将数据从CSV加载到MySQL工作台中的数据库中。我加载的表格有一个自动增量ID列。我试图让查询识别我希望它将第一列保持为Null,并且我将NULL作为CSV中的值,但是我无法使用SET ... NULL命令来识别{的名称{1}}列。这是我正在使用的SQL:

ID

我怀疑我正在制作导致问题的简单语法错误。但我无法弄清楚它是什么。

1 个答案:

答案 0 :(得分:0)

如果在CSV文件中输入NULL作为值,则语句中不需要“SET column_name = null”。 AFAIK,SET值应该用于提供不是从输入文件派生的值,或者在插入之前对值进行计算。由于您说您在CSV中指定了NULL,因此该语句应该可以正常工作。但是,请确保根据文档“正确”指定NULL。我总是在我的导入文件中使用\ N。

LOAD DATA INFILE 'filename.csv'
INTO TABLE table_name
FIELDS TERMINATED BY ','
LINES TERMINATED BY ',,'

其次,您可以通过将CSV文件分配给用户变量,然后使用SET指定列值来丢弃CSV文件中指定的NULL。但是,您需要指定列列表

LOAD DATA INFILE 'filename.csv'
INTO TABLE table_name (@dummy, column_2, column_3)
FIELDS TERMINATED BY ','
LINES TERMINATED BY ',,'
SET column_name = NULL

我有另外一个基于MySQL文档的想法,并且取决于您的服务器的配置方式。评论如果这不起作用,我将提供更多选项。

http://dev.mysql.com/doc/refman/5.1/en/load-data.html