MySQL-触发器(基础1.0)

本文存在的意义只是将作者在工作学习中的东西进行记录,文中若有不正确之处还望指出

什么是触发器?

百度词条解释:

触发器(trigger)是SQL server 提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对一个表进行操作( insert,delete, update)时就会激活它执行。触发器经常用于加强数据的完整性约束和业务规则等。

个人理解:

“触发器本质上讲就是事件监控器,可以定义在数据库系统进行某一个操作的前后触发器。当数据库系统在进行特定的操作时,发现有触发器定义,就去执行触发器定义的功能,从而满足某些特定的需要。
目前可以理解为是为了保证数据完整性和数据一致性而应用的一个功能。我们可以在不同的应用场景中根据不同的事件让数据库自动触发我们已经设置的触发器,从而保证数据的一致性。


触发器的分类

一、DLL 触发器:
1、INSERT 当表中执行INSERT语句时触发
2、UPDATE 当表中执行UPDATE语句时触发
3、DELETE 当表中执行DELETE语句时触发
二、触发方式:
1、BEFORE 前置触发:在事件执行前触发
2、AFTER 后置触发:在事件执行后触发


触发器的格式

创建触发器

DELIMITER $$

CREATE TRIGGER 触发器名称
AFTER || AFTER
INSERT || UPDATE || DELETE
ON 表名(在哪张表上建立触发器)
FOR EACH ROW
BEGIN
触发事件
END;$$
DELIMITER ;

查看触发器

// 查看本数据库中的所有触发器
SHOW TRIGGERS;

// 查看mysql中的所有触发器,范围更大,information_schema库中的TRIGGERS表包含了所有的触发器
SELECT * FROM INFORMATION_SCHEMA.TRIGGERS;

删除触发器

DROP TRIGGER 触发器名称;


例子

创建一个zs_people表,并加入一条数据
在这里插入图片描述

创建一个zs_people_log表,用于验证触发器
在这里插入图片描述
创建一个insert后置触发器,当zs_people表中有insert执行后,就会自动将zs_people新增的数据insert到zs_people_log表中,此处的delimiter关键字不可省略
在这里插入图片描述

zs_people表添加一条新数据
在这里插入图片描述

显示zs_people_log表中已经存在刚刚新增的数据
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值