SQL触发器及视图

触发器:当emp表一条记录被删时,把被删记录写到日指表

Create table del_emp as select * from emp where 1=2;
Select * from emp;
Create or replace trigger tr_del_emp
Before delete
On emp
For each Row
When (old.deptno<>10)
Begin
Insert into    ;

触发器类型:

  1. 模式触发器(DDL):模式中DDL语句;
  2. 数据库级触发器:开、关、登、退数据库系统事件时执行;
  3. DML触发器:行级、语句级、instead of(视图)触发器。

触发器的三个部分:
1. 触发器语句(事件):定义激活触发器的DML事件、DDL事件

Before delete
On emp
For each row

2. 触发器限制:执行触发器条件,条件为真时才激活触发器

When (old.dept<>10)
  1. 触发器操作(主体):包含一些SQL语句、代码,在触发语句发出且触发条件为真时运行。
Begin
Insert into del_emp(deptno,empno,… …)  // :old 即将删除的数据  :new 即将插入的数据
Values(:old.deptno,:old.empno,… …);
End;

触发器:

Alter  trigger 名字 disable;//禁用触发器
Drop trigger 名字 enable;//启用触发器

视图(虚拟表):

Grant create view to scott select on v1;
Create view v1 as select * from emp;
Select * from v1;
Grant/revoke create view select on v1;

Create or replace trigger giud_emp_row
After insert or delete or update
On emp
For each row    //行级触发器,去掉为语句级触发器
Begin
If updating then
Dbms_output.put_line(‘order_master中数据更新’);
Else if deleting then                      ;
Else if inserting then                      ;
End if;
End;

在这里插入图片描述

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值