MySQL触发器不编译和逻辑

时间:2014-05-24 15:06:28

标签: mysql sql triggers

我正在尝试实现以下触发器,但我收到MySQL语法错误。我的想法是,每次更新表后,如果“禁止”字段已更改为1,我想将更新的“有效”字段设置为0.还有下面的逻辑是否正确?

Create Trigger `customers` Before Update on `customers` for each row BEGIN
    set new.valid = 0 WHERE new.banned = 1;
END;

1 个答案:

答案 0 :(得分:2)

是的,触发器应该是

delimiter //
Create Trigger `customers_update` 
Before Update on `customers` 
for each row 
BEGIN
    IF new.banned = 1 
     THEN set new.valid = 0 ;
    END IF ;
END;//

如您所见,我在触发器所需的触发器中使用了delimiter。这里有一个很好的解释What does DELIMITER // do in a Trigger?