Vraag : draperende tussenvoegsels; overgaand nieuwe seq # tot kindlijsten

voor de volgende lijsten, (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 kan de logica
tableA u voorzien om het volgende te doen?

we kan tot opeenvolging 2 voor tableB leiden en tableA; maar hoe u het nieuwe opeenvolgingsaantal tot de kindverslagen doorgeeft?

--maak nieuwe die bescheiden in tableB op op ingediende match
INSERT in tableB b
select createnewpk, d.col3, d.col4, d.col5, d.col6, d.col7
from tableB B, ingediende D waar d.col1 = b.col1 en d.col2 en b.col2

wordt gebaseerd--maak nieuwe bescheiden voor kindverslagen in tableA (geen voorwaarden in kwestie)
INSERT in tableA op een
select createnewpk, b.generated_newpk, col1

--maak nieuwe die bescheiden voor kindverslagen in op tableC maar werk de gegevens bij op ingediende match.
INSERT in tableC c
select a.generated_newpk, .d.col5, d.col6, d.col7 from
tableC c, ingediende D worden gebaseerd waar c.col1 = d.col5 en c.col2 = d.col6 en c.col3= d.col7

Antwoord : draperende tussenvoegsels; overgaand nieuwe seq # tot kindlijsten

Wanneer u een opeenvolging gebruikt gebruikt u het volgende concept om een nieuwe waarde van het te krijgen:

seqname.nextval

U kunt dan naar de huidige waarde van de opeenvolging (zonder nieuwe waarden te produceren) verwijzen door het volgende te gebruiken:

seqname.currval

Zo door currval in u te omvatten neem verklaringen op u de kindrijen met hun ouders associ�ërt.
Andere oplossingen  
 
programming4us programming4us