mysql> CREATE TABLE t (id INT, count INT);
Query OK, 0 rows affected (0.05 sec)
mysql> DELIMITER //
mysql> CREATE TRIGGER BeforeUpdateT
-> AFTER UPDATE ON t
-> FOR EACH ROW
-> BEGIN
-> IF new.count = 0 THEN
-> DELETE FROM t WHERE id = new.id;
-> END IF;
-> END;
-> //
Query OK, 0 rows affected (0.06 sec)
mysql> INSERT INTO t VALUES(1, 100) //
Query OK, 1 row affected (0.01 sec)
mysql> UPDATE t SET `count` = 0 //
ERROR 1442 (HY000): Can't update table 't' in stored function/trigger because it
is already used by statement which invoked this stored function/trigger.
建了一个,结果失败了。
原因是 MySQL 触发器里面,不让你更新被触发的表。
追问对的,我就是不知道怎么解决这个问题