日期:2014-05-16 浏览次数:20759 次
DELIMITER $$ DROP TRIGGER /*!50114 IF EXISTS */ `test`.`tr_delete`$$ CREATE TRIGGER `test`.`tr_delete` AFTER DELETE on `test`.`t11_replicas` FOR EACH ROW BEGIN delete from t11 where id = old.id; END$$ DELIMITER ; select * from t11_replicas where id =2; query result(1 records) id str 2 This is a test 2 select * from t11 where id =2; query result(1 records) id str 2 23434343 delete from t11_replicas where id =2; (1 row(s)affected) (0 ms taken) select * from t11 where id =2; Empty set (0.00 sec)
------解决方案--------------------
不能够直接(select id from OLD)的,只能通过 (old|new).列名 的方式使用。
------解决方案--------------------
OLD 表示操作前的表
NEW 表示操作后的表
OLD.status 就是 表 更新或插入删除前对应记录的status字段值
NEW.status 就是 表 更新或插入删除后对应记录的status字段值
------解决方案--------------------
还有一点,对于INSERT语句,只有NEW是合法的;对于DELETE语句,只有OLD才合法;而UPDATE语句可以在和NEW以及OLD同时使用。