U kunt een neveneffect gebruiken van de insert all
multi-tafel insert
syntaxis hiervoor:
insert all
into job (jobid, fileid, jobname)
values (jobidsequence.nextval, fileid, jobname)
into reference (jobid, reffileid)
values (jobidsequence.nextval, reffileid)
select 4660 as fileid, 'name' as jobname, 4391 as reffileid
from dual;
2 rows inserted.
select * from job;
JOBID FILEID JOBNAME
---------- ---------- ----------
42 4660 name
select * from reference;
JOBID REFFILEID
---------- ----------
42 4391
Van de beperkingen:
Het is duidelijk dat ik een reeks gebruik in de values
clausule, dus de eerste zin lijkt niet helemaal nauwkeurig; maar je kunt het niet gebruiken in de select
een deel. (Ik weet niet 100% zeker of het kan worden gebruikt in de values
in alle versies, maar de documentatie is hoe dan ook een beetje misleidend en spreekt zichzelf tegen).
Dus ik maak gebruik van het feit dat, omdat het een enkele verklaring is, de twee verwijzingen naar nextval
krijg hetzelfde nummer, zoals de derde zin zegt, dus dezelfde reekswaarde wordt in beide tabellen gebruikt.