下面,我已经为定义中输入的相关表定义了一些表。很简单,虽然现在我试图在视图中提高这两位员工的工资,但我无法完成更新,并在下面看到错误消息。有人可以指导我一点吗? 表employees,projects和employees_projects的定义: 创建表员工 ( 身份证号码, name varchar2(20), mobile varchar2(10), 地址varchar2(30), 工资号码(6,2), hire_date日期, department_id号码 );
创建表项目 ( 身份证号码, name varchar2(20), 预算编号(10,2), start_date日期, 完成日期 ); 创建表employee_projects ( 身份证号码, employee_id号码, project_id号码 );
查看定义是:
create view lucky_employees as
select e.name,e.salary from employees e, project p, employee_projects ep
where e.project_id=p.id and e.id=ep.employee_id and p.budget > 1000000.00 ;
SQL> select * from lucky_employees;
ID NAME SALARY
1 Maria 1365.28
2 Sonja 1365.28
然后,我尝试将视图更新10%,这是我知道在某些条件下可以做的事情: SQL>
update lucky_employees set salary = salary * 1.1;
update lucky_employees set salary = salary * 1.1
*
第1行的错误:
ORA-01779: cannot modify a column which maps to a non key-preserved table
如何成功更新它?
非常感谢,抱歉给您带来不便!!