【问题标题】:Error 1064 - you have an eror in your SQL syntax at line... despite the online syntax checkers saying teh code is correct错误 1064 - 你的 SQL 语法有错误...尽管在线语法检查器说代码是正确的
【发布时间】:2020-05-21 05:11:59
【问题描述】:

我在这个 INSERT 语句上不断收到错误 1064,即使我已经在几个在线语法检查器上检查了它并且他们说它是 100% OK。我通过 MySQL Workbench 在 Mac 上运行 Mysql 8.0.19(我通过 PHPMyAdmin 得到相同的结果)。

INSERT INTO `tmpRC` (`OrigDateRefd`,`DbkNo`,`RefDocName`,`SpecCustLoc`,`P_Age`,`P_Gender`,`OriginalDiagnosis`,`ClinNotSumry`) VALUES (NULL,'62-0016','HINGSTON NG','RPH','10','FEMALE','TB',' '), (NULL,'62-0017','CONNOR','RPH','18','FEMALE','SECONDARY CA ',' ');

错误信息是:

"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 '`OriginalDiagnosis`,' at line 1". 

奇怪的是——我从几天前成功运行的查询中复制了这个插入语句!我看不出问题是什么 - 有什么想法吗?

【问题讨论】:

  • 你复制的不对。仔细看INSERT syntax
  • 感谢您的及时回复。我也许应该表明我已经按照建议检查了 v.8 的手册,并且我已经在 Stackoverflow 上搜索了以前提出的类似问题。我还从前几天重新运行了查询,它运行时没有抛出 1064 错误。在我看来,我的陈述符合手册中指定的语法: INSERT INTO tablename[tmpRC] (column_names [OrigDateRefd etc.]) VALUES (NULL, etc.);正如我所说的 - 我看不出问题是什么 - 如果很明显,你能给我一个更具体的提示吗?
  • 是我误读了这个。 ``` 对吗?尝试删除它们,以防它看起来相同的不同字符。
  • 您目前有任何触发器在运行吗?
  • @Carlosz 欢迎来到 Stack Overflow。请通过tour 了解 Stack Overflow 的工作原理,并阅读How to Ask 以了解如何提高问题的质量。然后查看meta.stackoverflow.com/questions/333952/… 了解与 SQL 相关的问题。

标签: mysql mysql-workbench sql-insert


【解决方案1】:

感谢您的意见。桌面上没有触发器。
以供将来参考以防万一有人遇到类似问题,我认为线索是在线语法检查器说 INSERT 语句中的语法是正确的,并且 P.Salmon 已经在 SQL_Fiddle 中对其进行了测试并且它可以工作。另一个线索是 MySQL Workbench 一直告诉我 VALUES 关键字后面有一个逗号,而很明显没有逗号 - 我的结论是:文件(我在 BBEdit 中编辑过的文件)以某种方式损坏或其中有隐藏字符不知何故。我在 BBEdit 中手动将查询(即,不是复制和粘贴)重新输入到一个新的 sql 文件中,它在 PHPMyAdmin 中完美运行。列名周围的反引号似乎对其在此上下文中的工作没有影响,因为无论您是否拥有它们,它都会运行。再次感谢您的关注和帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多