有一个表1t , 结构如下。
name varchar,
pass varchar,
state int;
已有数据
name pass state
------- ------- --------
name1 pass1 2
触发器的句如下
DROP TRIGGER IF EXISTS t1_update;
CREATE TRIGGER t1_update BEFORE UPDATE ON `t1`
FOR EACH ROW
BEGIN
IF NEW.state !=2 AND OLD.state !=1 THEN
SET NEW.state = 3;
END IF;
END;
当我执行语句
update t1 set `name`="name2" where `name`="name1"的时候期望 state 的值自动为3.
可以触发器的IF NEW.state!=2 并不成立,所以想问一下,update 语句里没有更新state的情况下,要怎么判断这个值。
如果 update 语句里 有set state=2 的情况是不能修改为3的。