MyS*_*DBA 1 mysql triggers insert
我有两个表t1和t2.在t2上更新后,我在t1和tr2上插入后创建了两个触发器tr1.在两个表中我更新表t2.所以,它抛出一个错误,说t2表已经在另一个触发器中更新,所以不能再次更新它.
如果有人遇到这类问题并修好它,请告诉我.
提前致谢!MySQL DBA.
shy*_*ent 22
如果要修改正在更新或插入的数据,则应使用BEFORE UPDATE和/或BEFORE INSERT触发器,然后使用NEW别名(它引用要插入的行或将显示的行)应用更新后) - 您实际上可以修改正在插入的字段.OLD别名在应用更新之前引用该行,或者在删除之前引用该行(在删除时触发的触发器中).
所以可能对于触发器tr2,你需要做的事情:
DELIMITER $$
CREATE TRIGGER tr2 BEFORE UPDATE ON t2
FOR EACH ROW BEGIN
SET NEW.field1 = some_value_you_want_to_set_it_to;
END;
$$
DELIMITER ;
Run Code Online (Sandbox Code Playgroud)
因为在触发器中你实际上无法更新表,即已经更新的表,这是正确的.
| 归档时间: |
|
| 查看次数: |
20358 次 |
| 最近记录: |