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 ;
上面的触发器是希望在 表 fxj 里面 当 fxj.stknew 更新时, 就更新 c2exp12, c2exp12 里面的值, (stknew - expma12) / xpma12 , 其中 stknew, expma12, expma50都是同一张表里面的列 , 现在报错:
END
1362 - Updating of NEW row is not allowed in after trigger
时间: 0.042s