create table emp as select * from scott.emp
Table created.
create table dept as select * from scott.dept
Table created.
select e.empno, e.ename, e.job, d.deptno from emp e inner join dept d on e.deptno = d.deptno
EMPNO | ENAME | JOB | DEPTNO | 7839 | KING | PRESIDENT | 10 | 7698 | BLAKE | MANAGER | 30 | 7782 | CLARK | MANAGER | 10 | 7566 | JONES | MANAGER | 20 | 7788 | SCOTT | ANALYST | 20 | 7902 | FORD | ANALYST | 20 | 7369 | SMITH | CLERK | 20 | 7499 | ALLEN | SALESMAN | 30 | 7521 | WARD | SALESMAN | 30 | 7654 | MARTIN | SALESMAN | 30 | 7844 | TURNER | SALESMAN | 30 | 7876 | ADAMS | CLERK | 20 | 7900 | JAMES | CLERK | 30 | 7934 | MILLER | CLERK | 10 |
---|
alter table dept add constraint dept_pk primary key (deptno)
Table altered.
update (select e.empno, e.ename, e.job, d.deptno
from emp e inner join dept d on e.deptno = d.deptno)
set deptno = 30 where empno = 7369
ORA-01779: cannot modify a column which maps to a non key-preserved tableMore Details: https://docs.oracle.com/error-help/db/ora-01779
alter table emp add constraint emp_dept_fk foreign key (deptno) references dept (deptno)
Table altered.
update (select e.empno, e.ename, e.job, d.deptno
from emp e inner join dept d on e.deptno = d.deptno)
set deptno = 30 where empno = 7369
1 row(s) updated.