如何导入不包含';我不能将每一列的数据都输入mySQL
我正在尝试使用以下查询将CSV文件导入MySQL(使用Workbench): 问题是,文件中的某些行没有两列的数据(即,某些行缺少生日) 以下是MySQL导出的table CREATE语句:如何导入不包含';我不能将每一列的数据都输入mySQL,mysql,csv,load-data-infile,Mysql,Csv,Load Data Infile,我正在尝试使用以下查询将CSV文件导入MySQL(使用Workbench): 问题是,文件中的某些行没有两列的数据(即,某些行缺少生日) 以下是MySQL导出的table CREATE语句: CREATE TABLE `user_birthdays` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(150) DEFAULT NULL, `user_birthday` varchar(45) DEFAULT NULL
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$$
如果存在不包含所有列的值的记录,如何加载文件
更新
下面是一些示例行;我确实发现有一行是完全空白的;我删除了它,错误消失了,但表似乎仍然没有填充。(是的,在某些情况下,用户名是数字的;这只是从字母排序文件的顶部开始。还有更多的用户名是“真实”的。)
您必须确保文件中没有空行,即使某个字段缺少值,分隔符(在您的示例中为逗号)仍然存在 现在,如果文件是在Windows计算机上生成的,则可能需要将行终止符更改为
\r\n
LOAD DATA INFILE 'badBDay.csv'
INTO TABLE user_birthdays
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\r\n'
(username, user_birthday)
即使一行没有生日值,文件中是否也有逗号?请显示文件中的一些示例行。是。但当我尝试运行它时,它仍然给我一个错误,告诉我某些行没有所有列的数据。在一秒钟内将样本行添加到OP。确定。您在什么平台上(Windows或Unix)?或者更重要的是,文件是在哪个平台上生成的?两者都是Windows。根据你下面的回答,我确实更改了行尾。没什么不同。没有迹象表明它正在运行-没有错误,但也没有成功消息。这个表仍然是空的。当我遇到类似的问题时,你已经解决了这个问题。正如我在OP中所说的那样,我删除了空白行,而分隔符是用不完整的数据排成的。这是一台Windows机器,所以我会尝试更换终结者。不,那没用。没有错误,但它没有给出任何运行指示,并且表仍然为空。请尝试从MySQL命令行运行加载数据填充。通过在本地环境中重新创建场景,我可以毫无问题地加载文件。
109,12/24/1979
124,03/31/1987
142,11/30/1965
143,
233,11/03/1970
311,
321,07/08/1971
LOAD DATA INFILE 'badBDay.csv'
INTO TABLE user_birthdays
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\r\n'
(username, user_birthday)