mysql学习笔记(十二)——触发器的概念与创建

本文深入探讨了数据库触发器的概念,解释了为何需要触发器及其如何通过响应特定事件(如DELETE、INSERT、UPDATE语句)来自动执行预设操作。同时,详细介绍了触发器的创建方法,包括一条执行语句触发器和多条执行语句触发器的语法及使用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、触发器的概念

我们都知道,需求带动进步。

问题一:那么我们为什么需要触发器呢?

试想这样一种情况,假如你事先创建了一个学生记录表,这个表的字段包括:学生名字、学生数,那么每次添加一条学生记录,学生总数是否也需要发生改变?

像这样,在对表进行修改的同时也需要进行一些自动处理,触发器就可以发挥作用。

触发器,由什么触发?答:由表事件触发。

准确来说,触发器是由事件触发、激活从而实现执行的数据库对象。

问题二:哪些事件触发呢或者说出现哪些语句会自动执行设置的操作呢?

  • DELETE语句
  • INSERT语句
  • UPDATE语句

二、触发器的创建

按照激活触发器执行语句的数目,分为“一条执行语句的触发器”和“多条执行语句的触发器”

1、创建“一条执行语句的触发器”

#语法形式#
CREATE TRIGGER trigger_name BEFORE(AFTER) trigger_event ON table_name FOR EACH ROW trigger_STMT


注释:
trigger_name:创建的触发器的名字
trigger_event:触发触发器的条件,包含DELETE INSERT UPDATE语句
table_name:触发事件操作表的名字
FOR EACH ROW:操作表上任何一条记录操作满足触发条件,都会触发触发器
trigger_STMT:激活触发器后执行的语句

2、创建“多条执行语句的触发器”

#语法形式#
DELIMITER @@//设置结束符号为"@@",因为";"为执行语句的结束标志
CREATE TRIGGER trigger_name BEFORE(AFTER) trigger_event ON table_name FOR EACH ROW 
BEGIN
trigger_STMT
END
@@
DELIMITER ;//还原结束符号为“;”

注:sqlyog亦可创建触发器,但由于本系列学习笔记主要在于学习sql语句,因此不再用sqlyog创建

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值