mysql给id设置默认值为UUID

          由于mysql并不支持默认值为函数类型,给id设值有两种方式:(1)通过后台在执行插入语句之前,给id设置为UUID (2)在数据库中通过触发器给id设置默认值为UUID。第(1)方式比较简单,这里就不多说了,主要讲讲通过触发器来实现的过程。

1.怎样创建触发器

create trigger 触发器的名称
触发时机 触发事件 on 要建立触发器的表名
for each ROW
BEGIN
	触发器要实现的逻辑
END

(1)触发时机,表示在事件触发前执行还是触发后执行,所以有两个可选值,before和after

(2)触发事件,也就是说,什么情况下,这个触发器才会执行,可以是在插入数据的时候insert,或者是在更新数据的时候update,或者是在删除数据的时候delete,一共是3种触发时机

 

2.通过触发器给id设置默认值为UUID

create trigger id_trigger
before insert on t_student_course
for each ROW
BEGIN
	SET new.ID=REPLACE(UUID(),'-','');
END

简单解释一下:

(1)id_trigger就是触发器的名字

(2)before就是触发时机,表示每次插入新数据之前执行触发器

(3)insert就是触发事件,表示插入数据的时候触发

(4)t_student_course就是要建立触发器的表名

(5)SET new.ID=REPLACE(UUID(),'-','');就是触发器实现的逻辑功能,也就是给id设置默认值为UUID,这里的new,代表即将插入的数据。这里其实可以写一些判断,什么情况下执行什么之类的。

3.效果

可以看到,在表t_student_course中,已经建立了触发器,下面新增一条记录测试一下:

我测试是可以的,有兴趣的可以自己测试一下。

  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值