-- 创建触发器 更新之后 new 修改后的数据 ;old 是老数据
-- after update 表示 更新后触发
-- after insert 表示 插入后触发
-- before update 表示 更新之前
-- before insert 表示 插入执行
-- 注意 触发器不能操作本表,会造成循环引用 例如 on后边的是BIZ_ENTITY_POUNDS,所以不能再操作这个表
DROP TRIGGER IF EXISTS T_CHANGE_ISCZ;
CREATE TRIGGER T_CHANGE_ISCZ
AFTER UPDATE ON BIZ_ENTITY_POUNDS
FOR EACH ROW
BEGIN
DECLARE pz VARCHAR(50);-- 声明一个变量
SELECT tareweight INTO pz FROM BIZ_ENTITY_POUNDS_MATS WHERE bizid=old.id;-- 给声明的变量赋值
-- 判断条件
if(new.billstatus='01' and new.compcode <> '001' and pz IS NOT NULL ) THEN
if(new.transtype='car') THEN
UPDATE BIZ_ENTITY_PICKUP_BILL SET iszc='2' WHERE id=old.refobjid;
end if;
if(new.transtype='logistics') THEN
UPDATE BIZ_ENTITY_LOGISTICS SET iszc='2' WHERE id=old.refobjid;
end if;
end if;
END;
-- new 和 old 代表 on 的表 实例中是指 BIZ_ENTITY_POUNDS
-- old 是没有更新后的表数据,new代表的是更新之后的数据
MySQL8 触发器
最新推荐文章于 2025-02-11 18:39:00 发布