Mysql
 sql >> Base de données >  >> RDS >> Mysql

comment insérer un fichier délimité par des tabulations dans mysql avec une relation

Créer une table (Staging ) avec beaucoup de colonnes. Avoir vide (NULL ) colonnes pour parent_id et des identifiants pour les enfants.

Espérons que les lignes "courtes" mettront des valeurs nulles dans les colonnes enfants manquantes pendant le LOAD DATA .

INSERT .. SELECT .. pour obtenir le parent et parent_detail dans les Parents table. Récupérez les ids de Parents dans Staging.parent_id . Les détails sur les deux SQL pour ceux-ci sont dans http://mysql.rjweb.org /doc.php/staging_table#normalization

Faites maintenant quelque chose de similaire pour chaque ensemble de colonnes "enfant" possible :child1 et child1_detail (éventuellement paire NULL) et le child1_id actuellement NULL . Idem pour child2*, etc. Notez que lorsque vous remplissez le champ Children table, vous avez déjà parent_id disponible.

Il s'agit d'une manière entièrement SQL d'effectuer la tâche. C'est seulement un peu moins salissant que d'écrire du code Perl/PHP/Java/VB/n'importe quoi pour faire la tâche.