2

我正在尝试使用此处找到的查询将 CSV 文件导入 MySQL(使用 Workbench):

LOAD DATA INFILE 'badBDay.csv' 
INTO TABLE user_birthdays 
FIELDS TERMINATED BY ',' 
LINES TERMINATED BY '\n' 
(username, user_birthday)

问题是,文件中的某些行没有两列的数据(即,有些行缺少生日。)

这是 MySQL 导出的表 CREATE 语句:

CREATE TABLE `user_birthdays` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(150) DEFAULT NULL,
  `user_birthday` varchar(45) DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `id_UNIQUE` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=65536 DEFAULT CHARSET=utf8$$

如果有记录不包含所有列的值,我如何加载我的文件?

更新

以下是一些示例行;我确实发现有一排完全是空白的;我删除了它,错误消失了,但表格似乎仍然没有填充。(是的,在某些情况下,用户名是数字;这只是从字母排序文件的顶部开始。还有更多具有“真实”用户名的。)

109,12/24/1979
124,03/31/1987
142,11/30/1965
143,
233,11/03/1970
311,
321,07/08/1971
4

1 回答 1

3

您必须确保文件中没有空白行,即使字段缺少值,分隔符(在您的情况下为逗号)仍然存在。

现在,如果文件是在 Windows 机器上生成的,您可能需要将行终止符更改为\r\n

LOAD DATA INFILE 'badBDay.csv' 
INTO TABLE user_birthdays 
FIELDS TERMINATED BY ',' 
LINES TERMINATED BY '\r\n' 
(username, user_birthday)
于 2013-08-27T21:41:08.947 回答