报错语句:
insert into view_emp_dep
values ('萧炎',5000,'售后部');
执行失败(语句1)
第2 行附近出现错误[-2649]:
试图插入只读视图[view_emp_dep]
我创建的视图语句:
create view view_emp_dep as
select t1.employee_name,t1.salary,t2.department_name
from employee t1,department t2
where t2.department_id = '102' and t1.department_id=t2.department_id;
当然啊,你这个视图里有两个表,不能直接插入的。
建视图的主要目的是为了方便查询,而不是为了编辑,老老实实的一张一张表处理吧。
绝大多数的视图都是只读。
对视图数据进行编辑的情况我见过两种:
一种是双表平衡负载,两张表一模一样,今天视图里是这张表,明天视图里是另外一张表,视图里的代码就是select * from 这张表
另一种是在视图中增加触发器,捕获插入、修改、删除动作,全部instead,不执行对该视图的任何操作,修改为对视图中引用的表进行分别的操作,这些代码也要逐个表来写,不能一条sql命令同时对多个表进行处理