触发器中的MySQL IF语句

时间:2017-02-19 07:23:13

标签: mysql if-statement triggers

我只想在我的sql中创建触发器,但发生了一些错误

这是代码

CREATE TRIGGER delete_santri_in_kamar
AFTER UPDATE ON
santri
FOR EACH ROW
BEGIN
DECLARE stat INT
SET stat = select status FROM santri WHERE id_santri=new.id_santri

IF (stat = 0) THEN
DELETE FROM santri_kamar_asrama WHERE id_santri=new.id_santri
END IF

END

这是错误消息

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'SET stat = select status FROM santri WHERE id_santri=new.id_santri

IF (stat =' at line 7

请帮帮我

1 个答案:

答案 0 :(得分:0)

在语句之后添加分号,在创建触发器代码之前更改默认分隔符(;。否则就会给出

SQL Error(1064): You have an error in your SQL Syntax;

创建触发器代码后,将;设置为默认分隔符

   DELIMITER $$
    CREATE TRIGGER delete_santri_in_kamar
    AFTER UPDATE ON
    santri
    FOR EACH ROW
    BEGIN
    DECLARE stat INT;
    SET stat = (select status FROM santri WHERE id_santri=new.id_santri);

    IF (stat = 0) THEN
    DELETE FROM santri_kamar_asrama WHERE id_santri=new.id_santri;
    END IF;

    END
$$
DELIMITER ;