弄不懂MySQL触发器?详细教学与实战分析,保姆式讲解

本文详细讲解了MySQL触发器的概念、作用、创建要素、使用语法,并通过实例展示了触发器在订单与库存、班级与学生管理等场景的应用,帮助读者深入理解触发器的使用和冲突解决。同时,探讨了触发器的性能和使用分析,指出在大量数据和并发情况下可能存在的问题,强调了学习触发器对于知识储备的重要性。
摘要由CSDN通过智能技术生成

MySQL触发器

一、什么是触发器

触发器(trigger)是MySQL提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对一个表进行操作(insert,delete, update)时就会激活它执行。简单理解为:你执行一条sql语句,这条sql语句的执行会自动去触发执行其他的sql语句。

二、触发器的作用

  • 可在写入数据表前,强制检验或转换数据。
  • 触发器发生错误时,异动的结果会被撤销。
  • 部分数据库管理系统可以针对数据定义语言(DDL)使用触发器,称为DDL触发器。
  • 可依照特定的情况,替换异动的指令 (INSTEAD OF)。

三、触发器创建的四要素

  • 监视地点(table)
  • 监视事件(insert、update、delete)
  • 触发时间(after、before)
  • 触发事件(insert、update、delete)

四、触发器的使用语法

语法:

before/after:触发器是在增删改之前执行,还是之后执行

delete/insert/update:触发器由哪些行为触发(增、删、改)

on 表名:触发器监视哪张表的(增、删、改)操作

触发SQL代码块:执行触发器包含的SQL语句

1CREATE TRIGGER 触发器名
2BEFORE|AFTER DELETE|INSERT|UPDATE
3ON 表名 FOR EACH ROW
4BEGIN
5触发SQL代码块;
6END;

注意:触发器也是存储过程程序的一种,而触发器内部的执行SQL语句是可以多行操作的,所以在MySQL的存储过程程序中,要定义结束符。

如果MySQL存储过程不了解的小伙伴,可以参考此文 面向MySQL存储过程编程 ,文章中详细讲解了MySQL存储过程的优势和语法等等,相信你会在其中得以收获。

1# 设置MySQL执行结束标志,默认为;
2delimiter //

五、触发器的基本使用

5.1 基本使用步骤

首先,我先展示一下创建的两张表,因为创建的表很简单,这里我没有提供库表操作的SQL命令。

tb_class

employee

其次,创建了一个含有update操作的存储过程

1delimiter //
2create procedure update_emp(in i int, in p int)
3begin
4    update employee set phone = p where id = i;
5end //

再创建一个触发器

分析:触发器名称为t1,触发时间为after,监视动作为update,监视表为employee表。汇总一起解释这个触发器就是:创建一个触发器名称为t1的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值