多表可更新视图测试

多表可更新视图测试:

create table t1

( t11 numeric(28),t12 varchar2(20));

create table t2

( t11 numeric(28),t22 varchar2(20));

create Or Replace view t1_t2 as

select T1.t11 f1 ,T1.t12 f2 ,T2.t22 f3

from T1,T2

Where T1.t11=T2.t11;

SQL> Create Or Replace Trigger Trg_InsUpdDel_t1_t2

2 Instead Of Insert or update or delete

3 on t1_t2

4 for each row

5 Declare

6 begin

7 If Inserting Then

8 Insert Into t1 (t11,t12) Values (:New.f1,:New.f2);

9 Insert Into t2 (t11,t22) Values (:New.f1,:New.f3);

10 elsif Updating Then

11 Update t1 set t11=:New.f1,t12=:New.f2 where t11=:New.f1;

12 Update t2 set t11=:New.f1,t22=:New.f3 where t11=:New.f1;

13 elsif Deleting then

14 Delete from t1 where t11=:Old.f1;

15 Delete from t2 where t11=:Old.f1;

16 End if;

17 end;

18 /

触发器已创建

SQL> insert into t1_t2 values (1,'t1','t2');

已创建 1 行。

SQL> insert into t1_t2 values (2,'t3','t4');

已创建 1 行。

SQL> commit;

提交完成。

SQL> select * from t1;

T11 T12

---------- --------------------

1 t1

2 t3

SQL>

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/36779/viewspace-888074/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/36779/viewspace-888074/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值