灰灰大魔王
2021-05-28 15:32
采纳率: 0%
浏览 69

MYSQL创建UUID主键的触发器未生效

使用如下代码创建了一个trigger触发器

DELIMITER $$
CREATE TRIGGER `stufiles`.`uuid_trigger` BEFORE INSERT ON `stufiles`.`stu_totalscore` FOR EACH ROW
BEGIN
    IF
        new.id IS NULL THEN
            
            SET new.id = uuid();
        
    END IF;
    
END $$DELIMITER;

 

 

触发器成功添加了但是添加记录时并未生效是什么原因呢?

 

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

5条回答 默认 最新

  • 一剑荒芜 2021-05-28 15:34

    id 没有值,你id设置的是非空,但是添加的时候没传值

    点赞 1 打赏 评论
  • CSDN专家-林老师 2021-05-28 15:50

    你的id字段的数据类型是varchar的吗?

    我这边MySQL8测试是没有问题的。

    点赞 打赏 评论
  • CSDN专家-林老师 2021-05-28 15:59

     

     

    我这边是没有问题的。

    按照你的语句创建触发器也是可以的。

    点赞 打赏 评论
  • 灰灰大魔王 2021-05-28 17:29

    问题已解决,当用触发器把UUID作为主键的时候,字段必须默认为EMPTYSTRING,不能设为默认的null,否则因为主键不为空不能插入字段

     

    点赞 打赏 评论
  • 有问必答小助手 2021-05-31 17:27

    您的问题已经有小伙伴解答了,请点击【采纳】按钮,采纳帮您提供解决思路的答案,给回答的人一些鼓励哦~~

    ps:开通问答VIP,享受5次/月 有问必答服务,了解详情↓↓↓

    【电脑端】戳>>>  https://vip.csdn.net/askvip?utm_source=1146287632
    【APP 】  戳>>>  https://mall.csdn.net/item/52471?utm_source=1146287632

    点赞 打赏 评论

相关推荐 更多相似问题