如何在插入后进行计数触发时修复mysql代码中的错误

时间:2019-02-12 15:21:33

标签: mysql sql

我正在设置triggerafter_inser,但我不知道如何解决

is_int()

1 个答案:

答案 0 :(得分:0)

触发器有几个问题:

  • 您需要从查询结果中SET var开始;现在,您没有设置此值

  • IF块必须以END IF

  • 终止

以下代码成功编译 in this DB Fiddle

DELIMITER $$

DROP TRIGGER IF EXISTS table_10_summary_after_insert $$

CREATE TRIGGER table_10_summary_after_insert AFTER INSERT ON table_10
FOR EACH ROW 
BEGIN
    DECLARE var INT;

    SET var = (SELECT COUNT(*) FROM table_10_summary WHERE client_id = new.client_id);
    IF (var > 0) THEN 
        UPDATE table_10_summary SET records = records + 1 WHERE client_id = new.client_id;
    ELSE
        INSERT INTO table_10_summary VALUES(new.client_id,1);
    END IF;

END$$

DELIMITER ;