我在Oracle中有两个表,一个是job表,一个是reference表。
我想要向这两个表中插入一条新记录,并使用序列生成的键。类似于:
insert into (
select j.jobid, j.fileid, j.jobname, r.reffileid
from job j
inner join reference r on j.jobid=r.jobid)
values (jobidsequence.nextval, 4660, 'name', 4391);
当然,这会导致:
ORA-01776: cannot modify more than one base table through a join view
有没有一种不使用PL/SQL的方法来做这件事情?我非常愿意只使用SQL来完成。
nextval
,下一个使用currval
引用生成的 ID。 - user330315nextval
或currval
调用中获得相同的值。 - user330315nextval
显然具有“全局”的范围,因为调用nextval
的其他会话将获得一个新值。另一方面,currval
始终是“私有的”。 - user330315