那到底能不能在视图中执行DML语言啊?比如INSERT INTO ABC(“……”)有效吗?或者其他DML语句有效吗?
TX们,为什么这么简单的问题为什么不自己做个测试来回答呢? create table employees(empno number primary key, ename varchar2(20), deptno number not null);create view abc as select * from employees;insert into abc values(1,'abc',10);commit;select * from abc;select * from employees;执行以上代码, 看看ABC和EMPLOYEES的内容是否一致?但如果你的ABC定义如下:create or replace view abc as select empno, ename from employees;or create or replace view abc1 as select deptno,count(empno) num_emp from employees group by deptno;然后再执行insert into abc values(2,'def');insert into abc1 values(20,10);看看结果如何?结论应该是对视图是可以DML的,不过根据视图定义不同, DML可能会失败,也可能会成功. 基本条件是,视图为简单视图(无关联和汇总), 其次, DML不受基表约束限制,如NOT NULL, PK等等.
=============================================================
只在基表EMPLOYEES上增加一条新的员工记录,视图不保存数据。