3

我正在运行这个 MySQL 命令:

LOAD DATA LOCAL INFILE 'books.csv'
INTO TABLE BOOK (Book_id, @dummy, Title, Publisher_name, @dummy, @dummy)
FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES;

我收到一个错误:

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 
'FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\r\n' IGNORE 1 LINES' at line 3

我在这里做错了什么?

4

2 回答 2

11

http://dev.mysql.com/doc/refman/5.6/en/load-data.html显示了语法。子句命名列在 IGNORE 子句之后。

LOAD DATA LOCAL INFILE 'books.csv'
  INTO TABLE BOOK 
FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES
(Book_id, @dummy, Title, Publisher_name, @dummy, @dummy);
于 2013-11-06T17:56:04.133 回答
5
You have an error in your SQL syntax; 

深呼吸,这个错误令人愤怒,为什么 MySQL 很烂。你有很多工作要做才能弄清楚你做错了什么:

如果您收到此错误,则表示 SQL 解析器由于以下原因之一而遇到错误:

  1. 一个错位、缺失或不必要的符号,如!@#$%^&*()-_=+[]{}\|;:'",.<>/?.
  2. 一个错位、缺失或不必要的关键字,如select,into或其他成千上万的关键字。
  3. 您的查询中有 unicode 字符。
  4. 关键字之间的空格太少或太多。
  5. 不匹配的单引号、双引号、括号或大括号。

将 SQL 分解成越来越小的部分,直到您只剩下尽可能少的失败语句。

语法错误会跳出来,你会打你的额头,离卸载 MySQL 恶意软件并获得 postgreSQL 更近一步,而不会使用户遭受这种令人发指的一般错误。

于 2014-01-11T08:36:33.630 回答