Il existe une option à placer en toute fin de commande load qui permet de préciser l'ordre de chargement des colonnes dans la table en sortie.
exemple pour reprendre ton cas:
load data local infile "nom_de_ton_fichier" into table nom_de_ta_table (col3_de_ta_table,col2_de_ta_table,col1_de_ta_table);
Le problème c'est que dans ton cas cela ne marchera pas car ce sont les colonnes 1,5,6 de ton fichier qui t'interressent et non pas les colonnes 1,2,3.
dans l'absolu il faudrait faire un truc du genre (col3_de_ta_table,,,,col2_de_ta_table,col1_de_ta_table). Hors l'option ne permet pas de shunter une colonne du fichier entrée par une virgule par exemple.
Il est donc impératif que toutes les colonnes qui t'interressent soient en début de ligne même si l'ordre entre-elles n'importe pas.
À noter que si le fichier entrée contient plus de colonnes que la table en sortie ce n'est pas grave. Tu as droit à un warning au chargement, sans plus.
Alors comment faire dans ton cas ?
2 possibilités:
- Primo. Sous éditeur (genre VI par exemple), faire disparaitre les colonnes 2,3,4 de chaque ligne de ton fichier en entrée puis lancer la commande load avec l'option comme mentionnée dans l'exemple plus haut.
- Secondo. regénerer ton fichier entrée par une commande select col6_name,col5_name,col1_name into outfile "nom_de_ton_fichier" from table nom_de_ta_table_en_entrée; puis lancer une commande load normalle.