触发器
dml触发器:通过dml语句出发程序,不能下tcl语句,不能自己提交回滚
新: :new.列名
旧: :old.列名
for each row 行触发器 //修改的每一行数据都触发一次
语法:
create or replace trigger 触发器名
after /before
delete / insert / update [of 列名] on 表名 [for each row]
begin
sql语句;
end 触发器名;
触发器影响表的使用效率
用途:删除emp数据,将历史数据备份
例子
创建触发器
create or replace trigger tri_emp_del
after delete on emp for each row//行行触发
删除emp数据时(delete 全部删除),将历史数据记录到备份表中
create or replace trigger tri_emp_del
before delete on emp1
begin
insert into emp_his select * from emp1;
end tri_emp_del ;
delete from emp1
更新
create or replace trigger tri_emp_upd
after update of sal on emp for each row
begin
dbms_output.put_line('更新前'||:old.sal);
dbms_output.put_line('更新前'||:new.sal);
end tri_emp_upd;