触发器报错1422-Explicitorimplicitcommitisnotal

image.png

-- 删除已有的触发器(如果存在)

DROP TRIGGER IF EXISTS after_update_shenghuo;

-- 创建触发器

DELIMITER //

CREATE TRIGGER after_update_shenghuo

AFTER UPDATE ON `shenghuo-ycljg`

FOR EACH ROW

BEGIN

    -- 检查是否存在字段值发生变化

    IF NEW.lianjieID <> OLD.lianjieID OR 

       NEW.fenlei <> OLD.fenlei OR 

       NEW.mingcheng <> OLD.mingcheng OR 

       NEW.guige <> OLD.guige OR 

       NEW.danwei <> OLD.danwei OR 

       NEW.weishuidanjia <> OLD.weishuidanjia OR 

       NEW.danjiaKG <> OLD.danjiaKG OR 

       NEW.beizhu <> OLD.beizhu OR 

       NEW.xiugairen <> OLD.xiugairen OR 

       NEW.xiugaishijian <> OLD.xiugaishijian THEN

        -- 插入数据到 shenghuo-ycljglsjl 表

        INSERT INTO `shenghuo-ycljglsjl` (uuid, lianjieID, fenlei, mingcheng, guige, danwei, weishuidanjia, danjiaKG, beizhu, xiugairen, xiugaishijian)

        VALUES (UUID(), NEW.lianjieID, NEW.fenlei, NEW.mingcheng, NEW.guige, NEW.danwei, NEW.weishuidanjia, NEW.danjiaKG, NEW.beizhu, NEW.xiugairen, NEW.xiugaishijian);

    END IF;

END;

//

DELIMITER ;

FineReport 小老头 发布于 2024-8-2 18:33
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共1回答
最佳回答
0
华莉星宸Lv7资深互助
发布于2024-8-3 08:38

这个错误表示在执行触发器时出现了一个数据完整性的违反。具体来说,这个错误是指在执行触发器中的操作时,违反了外键约束,导致无法更新或插入数据。

例如,如果你尝试向一个表中插入数据,而这个操作会导致一个外键约束失败,因为它指向的是不存在的父记录,那么你可能会看到这个错误。

解决方法:

  1. 检查触发器中的操作是否试图违反外键约束。

  2. 确认触发器中的操作是否正确地处理了外键关联的数据。

  3. 如果是插入或更新操作,确保父表中有相应的记录。

  4. 如果触发器逻辑正确,但是错误地被触发了,考虑重新设计触发器或修改触发器条件。

具体解决方案取决于触发器的具体逻辑和上下文。需要根据实际情况来决定如何修改触发器或数据以满足外键约束。

  • 2关注人数
  • 158浏览人数
  • 最后回答于:2024-8-3 08:38
    请选择关闭问题的原因
    确定 取消
    返回顶部