Pytanie : wszywka; przelotny nowy seq # dziecko stół

dla the następujący stół,
tableA (tableA_pk, tableB_fk, col1)
tableB (tableB_pk, col1, col2, col3, col4, col5)
tableC (tableA_fk, col1, col2, col3)
tableD (tableD_pk, col1, col2, col3, col4, col5, col6, col7)

what logika móc ty the następujący?

we móc 2 sekwencja dla tableB i tableA; ale dlaczego ty przechodzić dalej the nowy sekwencja liczba the dziecko rejestr?

--tworzyć nowy rejestr w tableB opierać się na zgłaszać match
INSERT w tableB b
select createnewpk, d.col3, d.col4, d.col5, d.col6, d.col7
from tableB B, zgłaszać D dokąd d.col1 = b.col1 i d.col2 i b.col2

--tworzyć nowy rejestr dla dziecko rejestr w tableA (żadny warunek wymagać)
INSERT w tableA
select createnewpk, b.generated_newpk, col1

--tworzyć nowy rejestr dla dziecko rejestr w tableC ale aktualizować the dane opierać się na zgłaszać match.
INSERT w tableC c
select a.generated_newpk, .d.col5, d.col6, d.col7 from
tableC c, zgłaszać D dokąd c.col1 = d.col5 i c.col2 = d.col6 i c.col3= d.col7

Odpowiedź : wszywka; przelotny nowy seq # dziecko stół

Gdy ty używać sekwencja ty używać the następujący konstrukcja nowy cenić od ono:

seqname.nextval

Ty móc wtedy the aktualny wartość the sekwencja (bez nowy wartość) the następujący:

seqname.currval

W Ten Sposób zawieranie the currval w ty wkładać oświadczenie ty kojarzyć the dziecko rząd z ich rodzic.
Inne rozwiązania  
 
programming4us programming4us