SQL批量插入CSV语法错误?

问题描述:

我正在尝试使用this tutorial加载一个简单的CSV文件。我的CSV包括国籍的名单,这里是一个示例:SQL批量插入CSV语法错误?

1,Afghan,2015-10-14 17:56:39

同时,我的表定义是:

+-------------+--------------+------+-----+-------------------+-----------------------------+ 
| Field  | Type   | Null | Key | Default   | Extra      | 
+-------------+--------------+------+-----+-------------------+-----------------------------+ 
| ID   | int(11)  | NO | PRI | NULL    | auto_increment    | 
| Nationality | varchar(255) | NO | UNI | NULL    |        | 
| Time  | timestamp | NO |  | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP | 
+-------------+--------------+------+-----+-------------------+-----------------------------+ 

我运行下面的命令:

BULK INSERT meta_nationality FROM '/home/benjamin/Downloads/Nationalities.csv' WITH (fieldterminator = ',', rowterminator ='\n');

这似乎是正确的,但是我收到一条指向语法问题的错误消息:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'bulk insert...

According to the documentation语法错误是指使用保留字的,但我不知道它是在这种情况下,哪一个。

你能帮我弄清楚我的方式吗?谢谢。

+1

您所遵循的教程是针对SQL Server而不是MySQL。这两者之间的语法差别很大。 – Sculper

BULK INSERT不是命令。

你很可能寻找LOAD DATA INFILE _____ INTO TABLE _____

既然你使用MySQL,你需要使用不同的语法。你应该知道你正在关注的教程是针对MSSQL的。

LOAD DATA INFILE "/home/benjamin/Downloads/Nationalities.csv" 
INTO TABLE meta_nationality 
COLUMNS TERMINATED BY ',' 
LINES TERMINATED BY '\n' 
+0

糟糕。还有一个教训。谢谢。 – Benjamin

请参阅MySQL教程而不是SQL服务器。 LOAD DATA INFILE 命令将帮助您