Crear una tabla (Staging
) con muchas columnas. Tener vacío (NULL
) columnas para parent_id
e identificaciones para los niños.
Espero que las líneas 'cortas' pongan nulos en las columnas de niños faltantes durante LOAD DATA
.
INSERT .. SELECT ..
para obtener el parent
y parent_detail
en los Parents
mesa. Retire los ids
de Parents
en Staging.parent_id
. Los detalles de los dos SQL para estos se encuentran en http://mysql.rjweb.org /doc.php/staging_table#normalización
Ahora haga algo similar para cada posible conjunto de columnas "hijo":child1
y child1_detail
(posiblemente par NULL) y el child1_id
actualmente NULL . Lo mismo para child2*, etc. Tenga en cuenta que al completar Children
tabla, ya tiene parent_id
disponible.
Esta es una forma totalmente SQL de hacer la tarea. Es solo un poco menos complicado que escribir Perl/PHP/Java/VB/cualquier código para hacer la tarea.