数据库的触发器

1.定义

触发器是由事件来触发某个操作,这些事件包括,insert、delete、update语句。当数据库执行这些事件时,就会激活触发器执行相应的操作。

2.分类

DML触发器的分类:   insert 触发器、delete 触发器、 update 触发器

3.补充说明

触发器有两个特殊的表:插入表(inserted 表)和 删除表(delete 表)//不会存储在数据库中,而且这两张表都是只读的

4.语法

4.1创建触发器

语法:

create trigger 触发器名A

after/before(在插入、删除、更新之前还是之后执行) insert/ delete /update(哪种类型触发器)

on 哪个表B

for each row(在每插入、删除、更新一行就执行一次)

begin

sql语句;(要执行的sql)

end;

//这条语句的意思是,创建一个触发器名字是"触发器A",在“表B”任意执行”insert/delete/update“语句之前,会激活触发器,执行sql语句

例子:

create trigger myTrigger001

before  delete

on myTable001

for each row

begin

insert into myTable002(id,name)values(OLD.id,OLD.name);    //OLD是一个虚拟表,可以通过它访问被删除的数据行,是delete类型触发器中特有的

end;

/**这条语句的意思是,在要删除myTable001表中每一行时,都会在删除之前将该行数据拷贝一份到myTable002表中 *、

4.2查看触发器

show triggers;   //查看所有触发器

show triggers from 数据库名;    //查看作用于某个表所在数据库的所有触发器

SELECT * FROM information_schema.triggers WHERE trigger_name= '触发器名';    //查看指定触发器的详细信息

4.3删除触发器

drop trigger 触发器名;

你可能感兴趣的:(数据库基础,数据库,sql)