触发器

------------------------------------------------触发器 begin---------------------------------
29. 触发器的 helloworld: 编写一个触发器, 在向 emp 表中插入记录时, 打印 'helloworld'

create or replace trigger emp_trigger
       after insert on emp
       for each row
begin
       dbms_output.put_line('helloworld');
end;


30. 行级触发器: 每更新 employees 表中的一条记录, 都会导致触发器执行


create or replace trigger employees_trigger
       after update on employees
       for each row
begin
       dbms_output.put_line('修改了一条记录!');
end;


语句级触发器: 一个 update 语句只使触发器执行一次

create or replace trigger employees_trigger
       after update on employees
begin
       dbms_output.put_line('修改了一条记录!');
end;

31. 使用 :new, :old 修饰符

create or replace trigger employees_trigger
       after update on employees
       for each row
begin
       dbms_output.put_line('old salary: ' || :old.salary || ', new salary: ' || :new.salary);
end;

32. 编写一个触发器, 在对 my_emp 记录进行删除的时候, 在 my_emp_bak 表中备份对应的记录


1). 准备工作:

create table my_emp as select employee_id id, last_name name, salary sal from employees
create table my_emp_bak as select employee_id id, last_name name, salary sal from employees where 1 = 2

2). 

create or replace trigger bak_emp_trigger
       before delete 
       on my_emp
       for each row
       
begin
       insert into my_emp_bak values(:old.id, :old.name, :old.sal);
end; 

------------------------------------------------触发器 end---------------------------------

转载于:https://www.cnblogs.com/nbkyzms/p/5031428.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值