Crea una tabella (Staging
) con molte colonne. Avere vuoto (NULL
) colonne per parent_id
e ID per i bambini.
Spero che le righe "brevi" inseriscano valori null nelle colonne figli mancanti durante il LOAD DATA
.
INSERT .. SELECT ..
per ottenere il parent
e parent_detail
nel Parents
tavolo. Ritira gli ids
da Parents
in Staging.parent_id
. I dettagli sui due SQL per questi sono in http://mysql.rjweb.org /doc.php/staging_table#normalizzazione
Ora fai qualcosa di simile per ogni possibile set di colonne "figlio":child1
e child1_detail
(possibilmente coppia NULL) e il child1_id
attualmente NULL . Idem per child2*, ecc. Nota che quando si compila il Children
tabella, hai già parent_id
disponibile.
Questo è un modo tutto SQL per eseguire l'attività. È solo leggermente meno disordinato che scrivere Perl/PHP/Java/VB/qualunque codice per eseguire l'attività.