概述
触发器
触发器是与表有关的数据库对象,在满足定义条件时触发,并执行触发器中定义的语句集合。
一、创建触发器
触发器只能创建在永久表(Permanent Table)上,不能对临时表(Temporary Table)创建触发器
1.1、创建触发器
# demo表
create table demo(
id int auto_increment primary key,
note varchar(20)
);
# demo触发器表
create table trigger_demo(
id int auto_increment primary key ,
note varchar(20)
);
# 插入之前触发器
create trigger insert_demo_before
before insert
on demo
for each row
begin
insert into trigger_demo(note) values ('before insert');
end;
# 插入之后触发器
create trigger insert_demo_after
after insert
on demo
for each row
begin
insert into trigger_demo(note) values ('after insert');
end;
# 更新之前触发器
create trigger update_demo_before
before update
on demo
for each row
begin
insert into trigger_demo(note) values ('before update');
end;
# 更新之后触发器
create trigger update_demo_after
after update
on demo
for each row
begin
insert into trigger_demo(note) values ('after update');
end;
1.2、测试触发器
# 插入数据测试
insert into demo value (1, 'a');
# 查看demo表
select * from demo;
+----+------+
| id | note |
+----+------+
| 1 | a |
+----+------+
# 查看trigger_demo表
select * from trigger_demo;
+----+---------------+
| id | note |
+----+---------------+
| 1 | before insert |
| 2 | after insert |
+----+---------------+
# 更新数据测试
update demo set note = 'b' where id = 1;
# 查看demo表
select * from demo;
+----+------+
| id | note |
+----+------+
| 1 | b |
+----+------+
# 查看trigger_demo表
select * from trigger_demo;
+----+---------------+
| id | note |
+----+---------------+
| 1 | before insert |
| 2 | after insert |
| 3 | before update |
| 4 | after update |
+----+---------------+
二、查看触发器
2.1、查看所有触发器
show triggers;
2.2、查看指定触发器
# 查看所有触发器
desc information_schema.TRIGGERS;
# 按触发器名称过滤查看
select * from information_schema.TRIGGERS where trigger_name = 'insert_demo_before';
三、删除触发器
# 删除名为insert_demo_before的触发器
drop trigger insert_demo_before;
四、注意
-
触发器不能调用将数据返回客户端的存储程序,也不能使用采用CALL语句的动态SQL,但是允许存储程序通过参数将数据返回触发程序。也就是存储过程或者函数cefpOUT或者INOUT类型的参数将数据返回触发器是可以,但不能调用直接返回数据过程。
-
不能在触发器中使用显示式隐匿方式开始或结束事务的语句
参考
- 《深入浅出MySQL第2版》唐汉明、翟振兴、关宝军、王洪权、黄潇著
最后
以上就是故意饼干为你收集整理的MySQL触发器触发器的全部内容,希望文章能够帮你解决MySQL触发器触发器所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复