第 14 行 '' 附近的 SQL 语法错误

Posted

技术标签:

【中文标题】第 14 行 \'\' 附近的 SQL 语法错误【英文标题】:SQL syntax error near '' at line 14第 14 行 '' 附近的 SQL 语法错误 【发布时间】:2013-08-11 09:45:07 【问题描述】:

我已经在 HeidiSQL IDE 中为 mysql trough IDE´s helper 创建了这个触发器,它工作得很好。如果我复制 IDE 生成的创建代码并尝试在 phpmyadmin 上运行它,我会收到一个 SQL 语法错误,我无法弄清楚如何修复它。谁能帮帮我?

CREATE TRIGGER `teste` AFTER UPDATE ON `ilmug_virtuemart_products` FOR EACH ROW BEGIN
   IF (NEW.origem_sync <> 0) THEN 
      INSERT INTO sincronizar (dataHora,
                               tipoMovimento,
                               entidade,
                               id,
                               version,
                               STATUS) 
                       VALUES (CURRENT_TIMESTAMP(),
                  'update',
                  'virtuemart_products',
                   NEW.virtuemart_product_id,
                   NEW.version,
                  'pendente');
   END IF;
END;

【问题讨论】:

【参考方案1】:

您有一个 BEGIN 声明...但 END 不见了


由于您编辑了您的问题,我对其进行了测试:http://sqlfiddle.com/#!2/0ebbf 根据sqlfiddle,有no语法错误...

【讨论】:

这不是问题,我尝试了许多不同类型的语法。我的问题是查询在 IDE 上运行,但不在命令或 phpmyadmin 上运行。我已经更新了查询,请再次检查并告诉我您是否发现任何问题。 即使没有语法错误,我仍然在 phpmyadmin 上收到此错误:#1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取正确的语法,以便在第 14 行的 '' 附近使用【参考方案2】:

使用DELIMITER

DELIMITER $$

CREATE TRIGGER `teste` AFTER UPDATE ON `ilmug_virtuemart_products` FOR EACH ROW
BEGIN
   IF (NEW.origem_sync <> 0) THEN 
      INSERT INTO sincronizar (dataHora,
                               tipoMovimento,
                               entidade,
                               id,
                               version,
                               STATUS) 
                       VALUES (CURRENT_TIMESTAMP(),
                  'update',
                  'virtuemart_products',
                   NEW.virtuemart_product_id,
                   NEW.version,
                  'pendente');
   END IF;
END$$

DELIMITER ;

【讨论】:

那么也许您应该考虑将答案标记为已接受,以及您提出的其他问题的所有正确答案。

以上是关于第 14 行 '' 附近的 SQL 语法错误的主要内容,如果未能解决你的问题,请参考以下文章

添加新的 Join 语句后 MS-SQL 存储过程引发错误。消息 102,级别 15,状态 1,第 279 行“WHERE”附近的语法不正确

第 1 行的 ''')' 附近的 SQL 语法有错误

-e 第 1 行,“'755']”附近的 nmake 语法错误

sql server中单引号拼接字符串(书写错误会出现错误"浮点值 XXXX 超出了计算机表示范围(8 个字节)。“XX”附近有语法错误。")

关键字“FOR”XML 附近的语法不正确

DAL中的一句sql总是提示'@pagesize'附近有语法错误。