mysql触发器

CREATE TRIGGER语法

CREATE TRIGGER trigger_name trigger_time trigger_event 
    ON tbl_name FOR EACH ROW trigger_stmt  

触发程序与命名为tbl_name的表相关。

trigger_time是触发程序的动作时间。它可以是BEFOREAFTER,以指明触发程序是在激活它的语句之前或之后触发。

trigger_time是触发程序的动作时间。它可以是BEFOREAFTER,以指明触发程序是在激活它的语句之前或之后触发。

trigger_event指明了激活触发程序的语句的类型。trigger_event可以是下述值之一:

·         INSERT:将新行插入表时激活触发程序

·         UPDATE:更改某一行时激活触发程序

·         DELETE:从表中删除某一行时激活触发程序

trigger_stmt是当触发程序激活时执行的语句。如果你打算执行多个语句,可使用BEGIN ... END复合语句结构。

MySQL数据库创建触发器的格式如下:

create trigger <触发器名称>
{ before | after}
{insert | update | delete}
on <表名>
for each row
<触发器SQL语句>


create trigger <触发器名称>:创建一个新触发器,并指定触发器的名称。
{ before | after}:用于指定在insert、update或delete语句执行前触发还是在语句执行后触发。
on <表名>:用于指定响应该触发器的表名。
for each row:触发器的执行间隔,for each row 通知触发器每隔一行执行一次动作,而不是对整个表执行一次。
<触发器SQL语句>:触发器要执行的SQL语句,如果该触发器要执行多条SQL语句,要将多条语句放在begin…end块中。

 

查看数据库中的触发器

SELECT * FROM information_schema.`TRIGGERS`;

 

删除触发器

drop trigger 触发器名字

 

实例1

create TRIGGER testtrigger  //创建一个testtrigger触发器

before insert on test             //在test表inser动作之前
for each row

insert into `test_trigger`(num) values(1);  //向test_trigger表插入一条数据

 

实例2

create trigger testtrigger //创建一个testtrigger触发器
before insert on test       //在test表inser动作之前
for each ROW
begin    
insert into `test_trigger`(num) values(1);     //执行多条附加语句,使用begin......end;语句包起来
insert into thing1(name,age) value("czh",23);
END;

你可能感兴趣的:(mysql触发器)