我正在尝试将数据从CSV加载到MySQL工作台中的数据库中。我加载的表格有一个自动增量ID
列。我试图让查询识别我希望它将第一列保持为Null,并且我将NULL作为CSV中的值,但是我无法使用SET ... NULL
命令来识别{的名称{1}}列。这是我正在使用的SQL:
ID
我怀疑我正在制作导致问题的简单语法错误。但我无法弄清楚它是什么。
答案 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文档的想法,并且取决于您的服务器的配置方式。评论如果这不起作用,我将提供更多选项。