繁体   English   中英

创建触发器时MySQL语法错误

[英]MySQL syntax Error on Create Trigger

这是我的触发器,我收到了MySQL语法错误。 我想减少来自sms_index sms_count 值的余额。

 CREATE TRIGGER sms_log_update AFTER UPDATE ON sms_index
  FOR EACH ROW
  BEGIN
    IF NEW.approved_status = '1' THEN
      UPDATE  sms_package SET  balance =  (balance - OLD.sms_count) WHERE  group_id = OLD.ins_group_id;
    END IF;
  END;

错误信息:

 #1064 - 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 '' at line 5 

您的代码看起来正确,除了定界符可能存在的问题。 请尝试以下操作:

DELIMITER //
CREATE TRIGGER sms_log_update AFTER UPDATE ON sms_index
FOR EACH ROW
BEGIN
    IF NEW.approved_status = '1' THEN
        UPDATE  sms_package SET  balance =  (balance - OLD.sms_count)
        WHERE  group_id = OLD.ins_group_id;
    END IF;
END;

DELIMITER ;

文档中

但是,就像存储例程一样,如果使用mysql程序定义执行多个语句的触发器,则必须重新定义mysql语句定界符,以便可以使用;。 触发器定义内的语句定界符。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM