您现在的位置是:群英 > 数据库 > MySQL数据库
MySQL触发器有何作用,怎样创建触发器
Admin发表于 2022-10-25 18:10:23596 次浏览
在实际案例的操作过程中,我们可能会遇到“MySQL触发器有何作用,怎样创建触发器”这样的问题,那么我们该如何处理和解决这样的情况呢?这篇小编就给大家总结了一些方法,具有一定的借鉴价值,希望对大家有所帮助,接下来就让小编带领大家一起了解看看吧。

1.为什么需要触发器

有一些表是互相关联的,比如说商品表和库存表,我们对商品表的数据进行操作,那么对应的库存表还得发生变化,这样才可以保证数据的完整。如果我们是自己手动维护的话,比较麻烦。
这个时候我们可以使用触发器,创建一个触发器,让商品信息数据的插入操作自动触发库存数据的插入操作等,这样我们就不需要担心因为忘记添加库存数据而导致数据丢失了。

2.触发器概述

  • MySQL是从5.0.2版本开始支持触发器的
  • MySQL的触发器和存储过程一样都是嵌入到MySQL服务器的一段程序
  • 触发器是由某一个事件来触发某个操作,这些事件包括insert,delete,update事件
  • 若定义了触发程序,那么数据库执行这些语句的时候,就相当于事件发生,会自动激发触发器执行相应的操作
  • 如果对数据库中的表的数据进行插入等操作的时候,需要自动执行一些数据库逻辑的时候,我们可以用触发器来实现。

3.触发器的创建

3.1语法

触发器是作用在表上的,比如说我们希望表A新增一条记录的时候就触发 触发器的执行,而且还要选择触发器是在insert语句执行之前执行触发器还是之后。

  • for each row表明,每执行一次事件(insert,update或delete)就会触发一次触发器
CREATE TRIGGER 触发器名称 
{BEFORE|AFTER} {INSERT|UPDATE|DELETE} ON 表名 
FOR EACH ROW 触发器执行的语句块;
登录后复制

说明:

  • 表名:表示触发器监控的对象。

  • BEFORE|AFTER:表示触发的时间。BEFORE 表示在事件之前触发;AFTER 表示在事件之后触发。

  • INSERT|UPDATE|DELETE:表示触发的事件。

    • INSERT 表示插入记录时触发;
    • UPDATE 表示更新记录时触发;
    • DELETE 表示删除记录时触发。
  • 触发器执行的语句块:可以是单条SQL语句,也可以是由BEGIN…END结构组成的复合语句块。

3.2 案例演示

先准备表

CREATE TABLE test_trigger (id INT PRIMARY KEY AUTO_INCREMENT,t_note VARCHAR(30));CREATE TABLE test_trigger_log (id INT PRIMARY KEY AUTO_INCREMENT,t_log VARCHAR(30));
登录后复制

要求:创建触发器:创建名称为before_insert的触发器,向test_trigger数据表插入数据之前,向test_trigger_log数据表中插入before_insert的日志信息。

4.查看触发器

  • 查看触发器是查看数据库中已经存在的触发器的定义,状态和语法信息等
  • 方式一:查看当前数据库的所有触发器的定义
show triggers\G 注意,在SQLyog中,不能加上\G
登录后复制

  • 方式二:查看当前数据库中某一个触发器的定义
show create trigger 触发器名
登录后复制

  • 方式三:从系统库information_schema的TRIGGERS表中查询“salary_check_trigger”触发器的信息
SELECT * FROM information_schema.TRIGGERS;
登录后复制

5.删除触发器

触发器也是数据库对象,触发器也是用drop语句来删除

drop trigger if exists 触发器名;
登录后复制

现在大家对于MySQL触发器有何作用,怎样创建触发器的内容应该都清楚了吧,希望大家阅读完这篇文章能有所收获。最后,想要了解更多MySQL触发器有何作用,怎样创建触发器的知识,欢迎关注群英网络,群英网络将为大家推送更多相关知识的文章。

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。

标签: mysql触发器
相关信息推荐
2021-11-15 17:56:43 
摘要:这篇文章给大家分享的是oracle中实现时间格式转换的方法。小编觉得挺实用的,因此分享给大家做个参考,文中示例的SQL语句有一定的参加价值,需要的朋友接下来一起跟随小编看看吧。
2022-05-12 16:35:45 
摘要:本篇文章给大家带来了关于MySQL的相关知识,其中主要介绍了关于复制架构的相关问题,包括了主从复制架构、联级复制架构、多主从复制架构的搭建等等,希望对大家有帮助。
2021-12-22 20:32:40 
摘要:这篇文章我们来了解MySQL慢查询日志的相关内容,下文会给大家介绍慢查询日志的启动、设置和修改等操作,有需要的朋友可以参考,希望能对大家有帮助,那么接下来就跟随小编来一起了解一下吧!
群英网络助力开启安全的云计算之旅
立即注册,领取新人大礼包
  • 联系我们
  • 24小时售后:4006784567
  • 24小时TEL :0668-2555666
  • 售前咨询TEL:400-678-4567

  • 官方微信

    官方微信
Copyright  ©  QY  Network  Company  Ltd. All  Rights  Reserved. 2003-2019  群英网络  版权所有   茂名市群英网络有限公司
增值电信经营许可证 : B1.B2-20140078   粤ICP备09006778号
免费拨打  400-678-4567
免费拨打  400-678-4567 免费拨打 400-678-4567 或 0668-2555555
微信公众号
返回顶部
返回顶部 返回顶部