一相关概念
1,触发器是数据库的对象,与函数类似,需要声明执行。触发器的执行不是程序调用,也不是手工启动,由事件来触发,激活从而实现执行。
2能够触发的语句:delete \ insert \ update
经常使用触发器数据对象,是由于该对象能够加强数据库表中数据的完整性约束和业务规则。
二创建触发器
1查询表
DESC t_dept;
DESC t_diary;
DESC t_dept;
| field | type | null | key | default | extra |
| deptno | int(11) | yes | null | ||
| dname | varchar(20) | yes | null | ||
| loc | varchar(40) | yes | null |
DESC t_diary;
| field | type | null | key | default | extra |
| diaryno | int(11) | no | pri | null | auto_increment |
| tablename | varchar(20) | yes | null | ||
| diarytime | datetime | yes | null |
2 向部门表中插入记录时,就会在插入之前向日记表中插入当前时间
create trigger tri_diarytime
before insert
on t_dept for each row
insert into t_diary values(null,'t_dept',now());
insert into t_dept values(1,'fghjk','shangxi');
select * from t_diary;
3创建包含多条执行语句的触发器
delimiter $$
create trigger tri_diarytime2
after insert
on t_dept for each row
begin
insert into t_diary values(null,'t_dept',now());
insert into t_diary values(null,'t_dept',now());
end
$$
delimeter;
insert into t_dept values(1,'fghjk','shangxi');
select * from t_diary;
| diaryno | tablename | diarytime |
| 1 | t_dept | 2019-06-23 15:25:09 |
| 2 | t_dept | 2019-06-23 15:30:07 |
| 3 | t_dept | 2019-06-23 15:30:07 |
三查看触发器
1 show triggers \G
2 select * from triggers \G
3 select * from triggers where triggers_name='tri_diarytime2' \G
四删除触发器
drop triggers tri_diarytime;
本文围绕数据库触发器展开,介绍了其相关概念,触发器是由事件触发执行的数据库对象,能加强数据完整性约束和业务规则。还详细说明了创建触发器的方法,包含单条和多条执行语句的情况,同时介绍了查看和删除触发器的操作。
899

被折叠的 条评论
为什么被折叠?



