使用分隔符触发mysql问题

时间:2015-10-19 12:09:54

标签: mysql

使用MySQL创建触发器时遇到问题。

delimiter //
CREATE TRIGGER trigversion AFTER INSERT ON offers
FOR EACH ROW
BEGIN
  update versions set value = @value + 1 limit 1;
END;//

问题:

  

#1064 - 您的SQL语法出错;检查手册   对应于您的MySQL服务器版本,以便使用正确的语法   在第5行附近的'//'

1 个答案:

答案 0 :(得分:1)

根据@ eggyal的评论。您运行SQL查询的平台很重要。
我不认为DELIMITER是有效的SQL语法,我相信它是由PHPMyadmin提供的。

如果您是从像PHP这样的环境运行,请尝试查询而不设置新的分隔符,例如。

CREATE TRIGGER trigversion AFTER INSERT ON offers
FOR EACH ROW
BEGIN
  update versions set value = @value + 1 limit 1;
END;

解释

根据OP的评论,该命令是针对PHPMyadmin运行的,我认为它可能值得注意,在这种情况下,我认为这只是查询中的语法错误,其中分隔符不是&#39 ;触发后正确复位。 我相信这个查询应该修复错误并在Phpmydmin上运行 - 但重要的是赢得运行PHP(PDO)

DELIMITER |
CREATE TRIGGER trigversion AFTER INSERT ON offers
FOR EACH ROW
BEGIN
  update versions set value = @value + 1 limit 1;
    END |
DELIMITER ;