2014-04-18 49 views
0

我创建了一个触发器,而这个触发器更新字段值,而不是检查,如果条件,触发不检查,如果条件

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 ; 

回答

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 ; 
+0

现在我已经使用了上面的代码,但它仍然更新user_active = 0,或者user_failed_logins大于3或更小。每触发一次触发,它都会更新user_active = 0的值。 – user3547710