mysql触发器存储触发器已被调用存储触发器的语句使用

Rus*_*uss 11 mysql sql triggers mysql-error-1442

我想设置一个触发器,以便在更新时预测字段为= 3,然后触发器将值更改为4并将其保存在数据库中.触发器如下.

出于某种原因,我不断收到错误说:

#1442 - Can't update table 'tzanalytic\_forecast\_cached' in stored 
function/trigger because it is already used by statement which invoked 
this stored function/trigger.
Run Code Online (Sandbox Code Playgroud)

这是正确的方式吗?

delimiter $$ 
CREATE TRIGGER no_BoW BEFORE UPDATE ON t FOR EACH ROW 
BEGIN set @prediction = new.prediction; 
UPDATE t SET t.prediction = (SELECT IF(@prediction = '3', '4', @prediction)) WHERE t.event_id = new.event_id AND t.price_tier = new.price_tier; END;
$$ delimiter ;
Run Code Online (Sandbox Code Playgroud)

Cor*_*use 41

MySQL触发器无法操纵它们分配给的表.所有其他主要DBMS都支持此功能,因此希望MySQL能够尽快添加此支持.

http://forums.mysql.com/read.php?99,122354,240978#msg-240978

  • 我每天都讨厌mysql (8认同)