触发不检查是否有条件

时间:2014-04-18 05:07:46

标签: mysql if-statement triggers

我已经创建了一个触发器,这个触发器更新了字段值,但没有检查if条件,

DELIMITER $$
create trigger `njsystem`.`test` BEFORE UPDATE on `njsystem`.`tbl_users` 
for each row 
BEGIN
    IF (NEW.user_failed_logins > 3) THEN
        UPDATE tbl_users SET user_active = 0;
    END IF;
END; $$

DELIMITER ;

1 个答案:

答案 0 :(得分:0)

我从您的问题陈述中了解到,如果user_failed_logins计数超过3,您希望将user_active设置为0.以下是解决方案,您也可以使用new更改值。

DELIMITER $$
create trigger `test` BEFORE UPDATE on `tbl_users` 
for each row 
BEGIN
    IF (NEW.user_failed_logins > 3) THEN
        SET NEW.user_active = 0;
    END IF;
END; $$

DELIMITER ;