mysql触发器知识点

mysql触发器是由事件来触发某个操作,这些事件包括INSERT、UPDATE和DELETE语句。

对于相同的表,相同的事件只能创建一个触发器。及时删除不再需要的触发器。

1、定义与用途

        触发器是一种数据库对象,用于响应对表的特定数据操作(DML)事件,如插入、更新或删除记录。 

        它们常用于实现复杂的业务规则、数据验证、审计、或维持数据的一致性,无需应用程序直接干预。

2、触发时机

        触发器可以设置为在事件发生之前(BEFORE)或之后(AFTER)执行。  

        BEFORE触发器可以在实际的更改发生前验证或修改数据。  

        AFTER触发器则在数据已经更改后执行,适合用于记录变更日志或级联操作。

3、执行范围

        FOR EACH ROW子句表明触发器针对受DML操作影响的每一行数据分别执行一次。

4、创建触发器

   CREATE TRIGGER trigger_name
   BEFORE|AFTER trigger_event ON table_name
   FOR EACH ROW
   trigger_body;

        trigger_name 是触发器的名称。

        BEFORE|AFTER 指定触发器执行的时间点。

         trigger_event 是触发触发器的事件(INSERT、UPDATE、DELETE)。

         table_name 是触发器监视的表。

        trigger_body 包含触发器执行的具体SQL语句。

5、查看触发器

        2.1、SHOW TRIGGERS语句查看触发器

SHOW TRIGGERS;

        2.2、在triggers表中查看触发器

SELECT * FROM information_schema.triggers WHERE condition;

6、触发器的使用

        触发程序是与表有关的命名数据库对象,当表上出现特定事件时,将激活该对象。

        触发程序与表相关,当对表执行INSERT、UPDATE和DELETE语句时,将激活触发程序。

7、删除触发器

        格式:

DROP TRIGGER [schema_name.]trigger_name

        schema_name:数据库名称。

        trigger_name:触发器名称。

8、变量与OLD/NEW关键字 

         在触发器体内,可以使用OLD和NEW来引用触发事件影响的行的旧值和新值。

        对于INSERT触发器,只有NEW有效;对于DELETE触发器,只有OLD有效;而对于UPDATE触发器,两者都可用。

9、注意事项 

        触发器的执行是隐式的,由数据库系统自动管理,开发者无需显式调用。

        过多或复杂的触发器可能会对数据库性能产生负面影响,因此设计时需谨慎。  

        触发器不能直接返回数据给客户端,主要用于数据处理或内部逻辑控制。

  • 12
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值