17,086
社区成员
发帖
与我相关
我的任务
分享
--注意操作只能操作v_test 不能直接操作test表
[TEST@myorcl] SQL>CREATE TABLE TEST(ID NUMBER PRIMARY KEY,FLAG VARCHAR2(1));
表已创建。
[TEST@myorcl] SQL>INSERT INTO TEST VALUES(1,'0');
已创建 1 行。
[TEST@myorcl] SQL>INSERT INTO TEST VALUES(2,'0');
已创建 1 行。
[TEST@myorcl] SQL>INSERT INTO TEST VALUES(3,'0');
已创建 1 行。
[TEST@myorcl] SQL>INSERT INTO TEST VALUES(4,'0');
已创建 1 行。
[TEST@myorcl] SQL>INSERT INTO TEST VALUES(5,'0');
已创建 1 行。
[TEST@myorcl] SQL>INSERT INTO TEST VALUES(6,'0');
已创建 1 行。
[TEST@myorcl] SQL>
[TEST@myorcl] SQL>CREATE OR REPLACE VIEW V_TEST AS
2 SELECT * FROM TEST;
视图已创建。
[TEST@myorcl] SQL>CREATE OR REPLACE TRIGGER V_TRIGGER
2 INSTEAD OF DELETE ON V_TEST
3 FOR EACH ROW
4 BEGIN
5 UPDATE TEST
6 SET FLAG = '1'
7 WHERE ID = :OLD.ID;
8 END;
9 /
触发器已创建
[TEST@myorcl] SQL>SELECT * FROM TEST;
ID F
---------- -
1 0
2 0
3 0
4 0
5 0
6 0
已选择6行。
[TEST@myorcl] SQL>SELECT * FROM V_TEST;
ID F
---------- -
1 0
2 0
3 0
4 0
5 0
6 0
已选择6行。
[TEST@myorcl] SQL>DELETE FROM V_TEST WHERE ID = 1;
已删除 1 行。
[TEST@myorcl] SQL>SELECT * FROM V_TEST;
ID F
---------- -
1 1
2 0
3 0
4 0
5 0
6 0
已选择6行。
[TEST@myorcl] SQL>SELECT * FROM TEST;
ID F
---------- -
1 1
2 0
3 0
4 0
5 0
6 0
已选择6行。
[TEST@myorcl] SQL>