Questione : inserti procedenti in sequenza; passando nuovo seguente # alle tabelle del bambino

per le seguenti tabelle, la logica del

what del
tableD (tableD_pk, col1, col2, col3, col4, col5, col6, col7) del
tableC (tableA_fk, col1, col2, col3) del
tableB (tableB_pk, col1, col2, col3, col4, col5) del
tableA (tableA_pk, tableB_fk, col1) può voi prevedere di fare quanto segue? il

we può generare la sequenza 2 per tableB e tableA; ma come passate sopra il nuovo numero progressivo alle annotazioni del bambino?

--generare i nuovi record nel tableB basato su match
INSERT nel createnewpk del b
select del tableB, d.col3, d.col4, d.col5, d.col6, tableB b di d.col7
from, d posposta dove d.col1 = b.col1 e d.col2 e b.col2

--generare il nuovo record per le annotazioni del bambino nel
INSERT del tableA (nessun circostanze in questione) in tableA un createnewpk del
select, b.generated_newpk, col1 il

--generare il nuovo record per le annotazioni del bambino nel tableC ma aggiornare i dati basati su match.
INSERT nel
select a.generated_newpk, .d.col5, il d.col6, d.col7 il from
tableC c, d posposta dove c.col1 = d.col5 e c.col2 = d.col6 e c.col3= d.col7
del tableC c class= del

Risposta : inserti procedenti in sequenza; passando nuovo seguente # alle tabelle del bambino

Quando usate una sequenza usate la seguente costruzione per ottenere un nuovo stimate da esso:

seqname.nextval

Potete allora riferirti al valore corrente della sequenza (senza generare i nuovi valori) usando quanto segue:

seqname.currval

Così includendo il currval in voi inserire le dichiarazioni che associate le file del bambino con i loro genitori.
Altre soluzioni  
 
programming4us programming4us