mysql给id设置默认值为UUID的实现方法

 更新时间:2023年08月31日 10:38:55   作者:qiuxinfa123  
由于mysql并不支持默认值为函数类型,给id设值有两种方式,本文主要介绍了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中,已经建立了触发器,下面新增一条记录测试一下:

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

到此这篇关于mysql给id设置默认值为UUID的实现方法的文章就介绍到这了,更多相关mysql id设置默认值为UUID内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Mysql覆盖索引和前缀索引的实战

    Mysql覆盖索引和前缀索引的实战

    SQL是优化数据库的一个重要手段,本文主要介绍了Mysql覆盖索引和前缀索引的实战,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-07-07
  • MySQL 系统变量(查看,修改)

    MySQL 系统变量(查看,修改)

    MySQL的系统变量是由MySQL服务器管理的,用于控制服务器的各种行为和特性,本文主要介绍了MySQL 系统变量(查看,修改),感兴趣的可以了解一下
    2024-08-08
  • 一次mysql的.ibd文件过大处理过程记录

    一次mysql的.ibd文件过大处理过程记录

    mysql数据库的每个表都有ibd和frm两种格式的文件,ibd文件是表的数据文件,存放表的数据,修改文件后缀,无法在MySQL数据库中查询表数据,这篇文章主要给大家介绍了关于一次mysql的.ibd文件过大处理过程的相关资料,需要的朋友可以参考下
    2022-06-06
  • Mysql服务添加 iptables防火墙策略的方案

    Mysql服务添加 iptables防火墙策略的方案

    这篇文章主要介绍了给Mysql服务添加 iptables防火墙策略的方案,本文给大家分享两种解决方案,需要的朋友可以参考下
    2021-04-04
  • MySql获取某个字段存在于哪个表的sql语句

    MySql获取某个字段存在于哪个表的sql语句

    本文为大家详细介绍下通过MySql查询某个字段所在表是哪一个,具体的sql语句如下,感兴趣的朋友可以参考下,希望对大家有所帮助
    2013-07-07
  • MySQL Workbench导入excel数据的实现示例

    MySQL Workbench导入excel数据的实现示例

    本文主要介绍了MySQL Workbench导入excel数据的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01
  • 在MySQL 8.0版本中开启远程登录详细的操作步骤

    在MySQL 8.0版本中开启远程登录详细的操作步骤

    有时数据库所在机器与项目运行的机器不是同一个,那么就涉及到远程链接数据库了,下面这篇文章主要给大家介绍了关于在MySQL 8.0版本中开启远程登录详细的操作步骤,需要的朋友可以参考下
    2024-04-04
  • 高并发状态下Replace Into造成的死锁问题解决

    高并发状态下Replace Into造成的死锁问题解决

    本文主要介绍了高并发状态下Replace Into造成的死锁问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01
  • SQL查询表字段信息详细图文教程

    SQL查询表字段信息详细图文教程

    最近工作用到SQL语句查询表中所有字段的名称,下面这篇文章主要给大家介绍了关于SQL查询表字段信息的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-03-03
  • Navicat连接mysql 、 sqlserver数据库的步骤与常见问题解决

    Navicat连接mysql 、 sqlserver数据库的步骤与常见问题解决

    Navicat是一款支持多种数据库的管理工具,包括MySQL、PostgreSQL、Oracle和SQL Server等,这篇文章主要介绍了Navicat连接mysql 、 sqlserver数据库的步骤与常见问题解决,需要的朋友可以参考下
    2026-01-01

最新评论