单表建树的相关视图在现实的操作中,可以对其进行增、删与改。Oracle数据库多表建树的视图是不能直接进行视图添加等更新。今天和巨匠分享的是Oracle多表建树的视图insert的现实操作, 解决法子:替代触发器。说道这,巨匠可能就都知道怎么做了。
2 M+ \# T9 N2 ~; I8 X1 u2 i create or replace trigger 名称
, {6 ^$ s8 X: d, P% A7 t- v/ I6 L 1.Instead Of Insert or update or delete) J* x: r; [4 |6 x$ i1 _: ~; z) g
on 视图/ m. j7 O; ~0 h" w
1.for each row8 p2 v G6 v7 F% Q7 N& E
2.Declare, R) g6 X1 t1 f0 _
3.begin
2 V' t. T7 \9 F* v- O R0 G2 @ 4.If Inserting Then! T" }8 m2 N: f. f% Y
Insert Into 根基表1 (t11,t12) Values (:New.f1,:New.f2);8 z$ ^4 r( _5 X! _5 L% j& n9 A
Insert Into 根基表2 (t11,t22) Values (:New.f1,:New.f3);
' i+ m5 N. E" W9 @, K- D+ T 1.elsif Updating Then
0 g/ Q9 _, S" s9 q Update 根基表1 set t11=:New.f1,t12=:New.f2 where t11=:New.f1;
4 C3 q! _$ Y8 i1 ?- y Update 根基表2 set t11=:New.f1,t22=:New.f3 where t11=:New.f1;
8 Y, D9 N, I& `: Y 1.elsif Deleting then
: \2 A1 R0 K- e7 K Delete from 根基表1 where t11=:Old.f1;( C& Z+ E9 Z9 O1 v
Delete from 根基表2 where t11=:Old.f1; |