在同一表上更新后在触发器中更新表
在同一张表上更新后,如何在触发器中更新表的列?
这是触发条件:
CREATE TRIGGER upd_total_votes AFTER UPDATE ON products_scoreFOR EACH ROW
UPDATE
products_score
SET
products_score.votes_total =
(SELECT
(votes_1 + votes_2 + votes_3 + votes_4 + votes_5)
FROM
products_score
WHERE
id = new.id)
现在当我像这样更新表时
UPDATE products_score SET votes_1 = 5 WHERE id = 0
这不起作用,因为我得到以下信息:
#1442-无法更新存储函数/触发器中的表'products_score',因为调用该存储函数/触发器的语句已使用该表。
那么我到底该如何工作呢?
回答:
如果将触发器更改为BEFORE
而不是,AFTER
可以这样操作:
CREATE TRIGGER upd_total_votes BEFORE UPDATE ON products_score FOR EACH ROW
BEGIN
SET new.votes_total = new.votes_1 + new.votes_2 + new.votes_3 + new.votes_4 + new.votes_5
END
;
以上是 在同一表上更新后在触发器中更新表 的全部内容, 来源链接: utcz.com/qa/422981.html