MySql第触发器

MySql第触发器

  • 触发器的概念精讲
    • 创建触发器
      • 查看触发器

触发器的概念精讲

  1. 在实际开发中往往会碰到这样的情况:
  2. 当我们对一个表进行数据操作时,需要同步对其它的表执行相应的操作,正常情况下,如果我们使用sql语句进行更新,将需要执行多条操作语句!
  3. 比如,在某些棋牌游戏中,当玩家充值金币后,玩家表数据库中金币增加的同时,玩家所属的代理会得到相应的提成并计入代理的收益中,即代理数据库表提成记录字段也要同步更新。

而以上的场景,我们可以轻松使用触发器来实现!
触发器(TRIGGER)是由事件来触发某个操作。这些事件包括INSERT语句、UPDATE语句和DELETE语句。当数据库系统执行这些事件时,就会激活触发器执行相应的操作。MySQL从5.0.2版本开始支持触发器。
通过本章的学习,我们将了解触发器的含义和作用、如何创建触发器、查看触发器和删除触发器的方法。同时,可以了解各种事件的触发器的执行情况。

创建触发器

在MySQL中创建触发器通过SQL语句CREATE TRIGGER来实现,其语法形式如下:

   CREATE trigger trigger_name BEFORE|AFTER trigger_EVENT     
   ON TABLE_NAME FOR EACH ROW trigger_STMT   
  1. 在上述语句中,参数trigger_name表示要创建的触发器名;
  2. 参数BEFORE和AFTER指定了触发器执行的时间,前者在触发器事件之前执行触发器语句,后者在触发器事件之后执行触发器语句;
  3. 参数trigger_EVENT表示触发事件,即触发器执行条件,包含DELETE、INSERT和UPDATE语句;参数TABLE_NAME表示触发事件的操作表名;参数FOR EACH ROW表示任何一条记录上的操作满足触发事件都会触发该触发器;
  4. 参数trigger_STMT表示激活触发器后被执行的语句。执行语句中如果要引用更新记录中的字段,对于INSERT语句,只有NEW是合法的,表示当前已插入的记录;对于DELETE语句,只有OLD才合法,表示当前删除的记录;而UPDATE语句可以和NEW(更新后)以及OLD(更新前)同时使用。
  5. 注意:不能创建具有相同名字的触发器。另外,对于具有相同触发程序动作时间和事件的给定表,不能有两个触发器。因此,对于有经验的用户,在创建触发器之前,需要查看MySQL中是否已经存在该标识符的触发器和触发器的相关事件。

查看触发器

SHOW TRIGGERS语句查看触发器
那么如何查看MySQL软件中已经存在的触发器呢?在MySQL软件中查看已经存在的触发器,通过SQL语句SHOW TRIGGERS来实现,其语法形式如下,执行上面的SQL语句,执行结果如图9-10所示。

 SHOW TRIGGERS ;  

通过图9-10的执行结果可以发现,执行完“SHOW TRIGGERS”语句后会显示一个列表,在该列表中会显示出所有触发器的信息。其中,参数Trigger表示触发器的名称;参数Event表示触发器的激发事件;参数Table表示触发器对象触发事件所操作的表;参数Statement表示触发器激活时所执行的语句;参数Timing表示触发器所执行的时间。

你可能感兴趣的:(数据库及MySql,触发器,数据库,mysql)