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;

 

 

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

 

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

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

 

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

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

 

 

我这边是没有问题的。

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

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

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

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