源无极

导航

 

一、定义

      触发器是特殊的存储过程,不同的是存储过程调用要使用CALL语句,而触发器执行不需要调用CALL

也不需要手工启动,只要一个预定义的事件发生就会被MYSQL自动调用。

       如对数据库进行插入、删除、更新等操作可以激活触发器并执行触发器。

触发器程序经常用于加强数据的完整性约束和业务规则。触发器类似于约束,但是比约束更灵活,

具有更精细,具有更强大的数据控制能力。

      触发器优点如下:

1、执行是自动的,当对数据表进行操作时,会自动执行。

2.触发器可以通过数据库中相关的表层叠修改另外的表。

3.触发程序可以实施比FOREIGN  KEY  约束、CHECK约束更为复杂的检查和操作。

二、创建触发程序

语法如下:

 

CREATE   TRIGGER    trigger_name    trigger_time    trigger_event
ON     tb1_name    FOR    EACH   ROW    trigger_stmt

trigger_name :触发器名称

trigger_time :触发时机,可以指定为before 、after

trigger_event:触发事件 ,INSERT  UPDATE 、DELETE 

trigger_stmt:触发器程序体。

tb1_name  :建立触发器的表名,即在哪张表上建立触发器,

 

例子1:创建一个单条执行语句的触发器。

首先创建一个表newstudent ,表中有两个字段,分别是id和name字段。

 

 

 创建一个触发器名为in_newstu 的触发器,触发的条件是在插入数据之前,

对新插入的id字段值加1.求和计算。

 

 

 插入数据

 

 查看变量ss

 

 例子二、创建一个触发器,当id等于4,将姓名设置为“彤彤”

 

 

 

例子三、创建多条执行语句触发器

CREATE   TRIGGER     trigger_name     trigger_time   trigger_event
ON    tb1_table    FOR    EACH    ROW     trigger_stmt

建三张表

test1 test2  test3

要求向表

test1插入数据时,a1 值加100,然后将该值插入到a2字段中;

a1 值加200,然后将该值插入到a3字段中,

 

 

 

 

 

 

 

 

 

 

 

三、查看触发器

 

 Statement 是触发器执行的操作

Timing是触发器触发时间

MYsql中所有触发器都存在infomation_schema的TRIGGERS表

 

 

 

 

四、删除触发器

DROP    TRIGGER    数据库名称.触发器名称

 

注意:相同的表,相同的事件只能建一个触发器

 

 

 

posted on 2019-10-13 20:44  源无极  阅读(150)  评论(0编辑  收藏  举报