有没有办法将列号不匹配的 CSV 导入 MySQL?
我有一个 MySQL“员工”表,我们每月使用 CSV 文件更新一次。我在“员工”表中添加了两列与我们的需求相关的附加列。通过MySQL Workbench导入表数据,SQL语句如下:
LOAD DATA LOCAL INFILE 'EmployeeDump-March.csv' REPLACE INTO TABLE employees
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
我收到以下错误,这是绝对正确的...列号不匹配:
Error Code: 1261. Row 1 doesn't contain data for all columns 7.426 sec
这两个额外字段具有默认值。
有没有办法抑制这个错误,让 MySQL 忽略最后两列,不理会它们?
最佳答案
您可以(并且应该!)使用 LOAD DATA INFILE 显式命名要插入的列,就像常规的 INSERT 一样。您还可以选择为作为 LOAD DATA INFILE
语句一部分添加的两个新列设置默认值。
类似这样的事情。只需在括号之间按照正确的顺序填写实际的列名称,如果您不想使用 NULL,则为新列设置实际的默认值和列名称:
LOAD DATA LOCAL INFILE 'EmployeeDump-March.csv' REPLACE INTO TABLE employees
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
(old_column1, old_column2, ...)
set new_column1 = NULL,
new_column2 = NULL
关于mysql - 将 CSV 导入到 MySQL,其列数少于目标表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15817295/