Mysql 靠近'的SQL语法错误';在14号线

Mysql 靠近'的SQL语法错误';在14号线,mysql,syntax,triggers,phpmyadmin,heidisql,Mysql,Syntax,Triggers,Phpmyadmin,Heidisql,我已经在HeidiSQL IDE中通过IDE的助手为mysql创建了这个触发器,它工作得非常好。如果我复制IDE生成的create代码并尝试在phpmyadmin上运行它,我会得到一个SQL语法错误,我就是不知道如何修复它。有人能帮我吗 CREATE TRIGGER `teste` AFTER UPDATE ON `ilmug_virtuemart_products` FOR EACH ROW BEGIN IF (NEW.origem_sync <> 0) THEN

我已经在HeidiSQL IDE中通过IDE的助手为mysql创建了这个触发器,它工作得非常好。如果我复制IDE生成的create代码并尝试在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;
在更新“ilmug\u virtuemart\u products”后为每行开始创建触发器“teste”
如果(NEW.origem_sync 0),则
插入sincronizar(dataHora,
蒂波莫维门托,
整个,
身份证件
版本
(状态)
值(当前时间戳(),
“更新”,
“virtuemart_产品”,
新的.virtuemart\u产品\u id,
新版本,
"彭登特";;
如果结束;
结束;

您有一个
开始
语句…但是
结束
缺少


由于您已编辑了问题,我对其进行了测试:

根据sqlfiddle,没有语法错误…

使用
分隔符

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 ;
分隔符$$
在每行的“ilmug\u virtuemart\u products”更新后创建触发器“teste”
开始
如果(NEW.origem_sync 0),则
插入sincronizar(dataHora,
蒂波莫维门托,
整个,
身份证件
版本
(状态)
值(当前时间戳(),
“更新”,
“virtuemart_产品”,
新的.virtuemart\u产品\u id,
新版本,
"彭登特";;
如果结束;
结束$$
定界符;

这不是问题所在,我尝试了许多不同类型的语法。我的问题是查询在IDE上运行,但不在command或phpmyadmin上运行。我已经更新了查询,再次检查并告诉我您是否发现任何错误。即使没有语法错误,我仍然在phpmyadmin上发现以下错误:#1064-您的SQL语法有错误;检查对应于你的MySQL服务器版本的手册,以便使用正确的语法,在第14行使用“''”,也许你应该考虑把答案标记为“接受”,以及你所问的其他问题的所有正确答案。