MySQL ERROR 1064原因(LOAD DATA INFILE)

时间:2011-03-18 17:16:48

标签: mysql sql database load-data-infile

当我在MySQL中运行此SQL命令时

LOAD DATA INFILE 'myFile.csv' INTO myTable FIELDS TERMINATED BY ','

我收到此错误:

ERROR 1064 (42000) at line 1: 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 'TO myTable FIELDS TERMINATED BY ','' at line 1

此消息不是很有用,它可能会出现无数语法错误之一。

如何找出我用这样一个通用的“它将无效”错误消息所犯的错误?

2 个答案:

答案 0 :(得分:4)

LOAD DATA INFILE 'myFile.csv' INTO TABLE myTable 
FIELDS TERMINATED BY ','

(更改为INTO TABLE)取自documentation

答案 1 :(得分:1)

此MySQL错误:

You have an error in your SQL syntax; check the manual.

是MySQL可以给出的最令人愤怒的答案。你可能犯了大约十亿个错误,这会产生这个错误。这是MySQL糟透了的部分原因,你应该对继续使用它感到不舒服。 PostgreSQL永远不会给出这样一个蹩脚的错误信息。

你将不得不分裂和克服你的问题。

思路:

  1. 再次查看SQL语句中这些字符的使用情况:{}[]|\'";:,<.>/?!@#$%^&*()_+,以确保将它们放在正确的位置。如果它们不合适或缺少适当的空格填充,则可能导致此错误。

  2. 确保所有双引号和单引号都有匹配的合作伙伴。如果你没有正确地逃避某些事情,有时SQL解析器会感到困惑。

  3. 重新输入整个答案,以确保查询中没有unicode字符。

  4. 确保分隔单词的空格是空格和普通换行符,而不是ascii空格,无关换行符或间距字符。

  5. 确保以正确的顺序使用正确的关键字。并且您没有省略关键字。 “INTO TABLE blah”与“Into blah”不同,并且在这个主题上有无限变体。

  6. 确保您有分号。删除那些不属于的人。

  7. 删除MySQL,如果有人问为什么,那么说:“因为开发人员忘记将特定错误链接到有意义的唯一错误消息”。