第 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”附近的语法不正确
-e 第 1 行,“'755']”附近的 nmake 语法错误
sql server中单引号拼接字符串(书写错误会出现错误"浮点值 XXXX 超出了计算机表示范围(8 个字节)。“XX”附近有语法错误。")