gpt4 book ai didi

具有 UPDATE 条件的 MySQL 触发器

转载 作者:行者123 更新时间:2023-11-29 10:36:10 24 4
gpt4 key购买 nike

是否可以在 mysql 触发器中插入条件类型的更新?如果我需要在某种类型的更新之后执行某些操作,例如,如果更新是某种类型的字段值更改。更好地说,如果我需要在原始表中的特定字段将其值更改为特定值之后增加另一个表中的值,是否可能?任何帮助将不胜感激。
我正在尝试这个:

CREATE TRIGGER Increment 
AFTER UPDATE ON Subscription
FOR EACH ROW
BEGIN
UPDATE USER
SET num_sub=num_sub+1
IF NEW.State <> OLD.State AND NEW.STATE='C'
END IF
END

但是不起作用,语法错误。我通过 phpmyadmin 插入触发器。

最佳答案

尝试这样的事情:

CREATE TRIGGER Increment 
AFTER UPDATE ON Subscription
FOR EACH ROW
BEGIN
IF NEW.State <> OLD.State AND NEW.STATE='C' THEN
UPDATE USER
SET num_sub=num_sub+1
WHERE USER.id = NEW.user_id; -- change this condition as you need
END IF;
END

这也应该有效:

CREATE TRIGGER Increment 
AFTER UPDATE ON Subscription
FOR EACH ROW
UPDATE USER
SET num_sub=num_sub+1
WHERE USER.id = NEW.user_id
AND NEW.State <> OLD.State
AND NEW.STATE='C';

注:NEWOLD引用 Subscription 中的行正在更新的表。 OLD包含更新前的值。 NEW包含更新后的值。因此要检查 state 是否已更改您可以比较NEW.State <> OLD.State .

关于具有 UPDATE 条件的 MySQL 触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46392537/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com