1. 什么是触发器?
当用户满足某一条件(如:登陆数据库, insert, update, delete,create等等)时, 会引起某个存储过程的
自动执行, 我们把这个隐含被调用的存储过程就称为触发器.
2.触发器的分类
dml触发器 # insert delete update
ddl触发器 # create table; create view; drop...
系统触发器 # 与系统行为有关的触发器, 如登陆, 退出, 启动/关闭数据库等
3.创建触发器
create or replace trigger trigger_name # trigger_name为自定义的触发器名称
{ before | after } # 设定在之前/之后触发
{ insert|delete|update [of column1, column2]} # 设定触发的条件
on 方案.表名 # 方案即用户空间
[for each row] # 设定行级触发器, 如没有则为语句级触发器
[when condition]
begin
这里放触发器执行时要干的事 # 如: dbms_output.put_line('输出内容到窗口')
end;
4.行级触发器和语句级触发器:
行级触发器: 涉及多少行就触发执行多少次;
语句级触发器: 只会在执行触发语句时触发一次, 不论涉及到多少行.