MALOUDA-PSA 2025-03-09 21:05 采纳率: 85.6%
浏览 3
已结题

MySQL触发器的问题4


 
 
DELIMITER $$
 
CREATE TRIGGER update_fxj_before_update
after UPDATE ON fxj
FOR EACH ROW
BEGIN
    -- 仅当 stknew 发生变化时执行
    IF NEW.stknew <> OLD.stknew OR (NEW.stknew IS NULL AND OLD.stknew IS NOT NULL) OR (NEW.stknew IS NOT NULL AND OLD.stknew IS NULL) THEN
        -- 更新 c2exp12 的逻辑
        IF old.expma12 = 0 THEN
            SET c2exp12 = 100;
        ELSE
            SET c2exp12 = (NEW.stknew - NEW.expma12) / NEW.expma12 * 100;
        END IF;
 
        -- 更新 c2exp50 的逻辑
        IF old.expma50 = 0 THEN
            SET c2exp50 = 100;
        ELSE
            SET c2exp50 = (NEW.stknew - NEW.expma50) / NEW.expma50 * 100;
        END IF;
    END IF;
END$$
 
DELIMITER ;

1362 - Updating of NEW row is not allowed in after trigger
时间: 0.042s

  • 写回答

1条回答 默认 最新

  • 阿里嘎多学长 2025-03-09 21:05
    关注

    阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程

    MySQL 触发器的问题

    你创建了一个名为 update_fxj_before_update 的触发器,它将在 fxj 表的更新操作之前执行。触发器的代码如下:

    DELIMITER $$
    CREATE TRIGGER update_fxj_before_update
    after UPDATE ON fxj
    FOR EACH ROW
    BEGIN
        -- 你的代码逻辑
    END$$
    DELIMITER ;
    

    问题是,你想要在这个触发器中执行什么代码逻辑?例如,你想更新其他表、发送邮件、执行某些业务逻辑等?

    请提供更多信息,我将尽力帮助你解决问题。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 3月9日
  • 创建了问题 3月9日