我在SQL模式上得到了这个错误。我收到的错误信息是
"
SQL语法中有错误;请查看手册
对应于MySQL服务器版本,以便使用正确的语法
在上更新后接近“创建触发器更新程序”平衡
第2行中每个R的经销商4”
什么语法出错了?我正在附加2个SQL模式。都有同样的问题。

delimiter // DROP TRIGGER IF EXISTS updtrigger_r4_balance;
CREATE TRIGGER updtrigger_r4_balance AFTER
UPDATE
   ON resellers4 FOR EACH ROW
   BEGIN
      IF NEW.callsLimit <= 0
   THEN
      UPDATE
         resellers4_child r4c
         INNER JOIN
            resellers3 r3
            ON (r4c.reseller3_id = r3.id)
      SET
         r4c.reseller3_callsLimit = r4c.reseller3_callsLimit + r3.callsLimit, r3.callsLimit = 0
      WHERE
         r4c.reseller4_id = new.id;
   END
   IF;
END
// delimiter ;

另一个是:
delimiter //
DROP TRIGGER
IF EXISTS updtrigger_r4_balance_add;

CREATE TRIGGER updtrigger_r4_balance_add BEFORE UPDATE ON resellers4 FOR EACH ROW
BEGIN

IF OLD.callsLimit <= 0 THEN

    UPDATE resellers3 r3
    INNER JOIN resellers4_child r4c ON (r4c.reseller3_id=r3.id)
    SET
                r3.callsLimit = r3.callsLimit+r4c.reseller3_callsLimit,
                r4c.reseller3_callsLimit = 0

    WHERE r4c.reseller4_id=new.id;

END IF;

END
//
delimiter ;

最佳答案

更改分隔符后,必须使用它而不是;

delimiter //
DROP TRIGGER IF EXISTS updtrigger_r4_balance_add; <--- use // instead

09-15 12:47