Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
893 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Extraire table mysql pour copier avec modif dans une autre

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Extraire table mysql pour copier avec modif dans une autre

n°2167739
maxredphen​ix
Posté le 12-12-2012 à 17:56:21  profilanswer
 

Bonjour à tous,
 
J'ai une table mis dans le format suivant:
ENSEMBLE, Elément, Bt1, Bt2, Bt3....., Bt300
 
Bt1 à Bt300 sont des bâtiments (mais il n'y en a pas 300 mais environ 100 c'est juste leurs noms), chaque colonne bâtiment contient le nombre d'élément. Ce qui donne par exemple ceci
http://dl.dropbox.com/u/31901874/exemple1.jpg  
 
Je voudrais copier cette table et l'insérer dans une autre (inventaire) qui est dans le format suivant:
type_ensemble, element, nom_batiment, nombre
 
Soit ceci:
http://dl.dropbox.com/u/31901874/exemple2.jpg
 
Est-ce que quelqu'un sait comment est-ce que je peux faire?
 
Si oui comment?
 
Merci d'avance
 
Maxredphenix


Message édité par maxredphenix le 12-12-2012 à 18:37:28
mood
Publicité
Posté le 12-12-2012 à 17:56:21  profilanswer
 

n°2167780
mrbebert
Posté le 12-12-2012 à 20:35:21  profilanswer
 

Je sais pas ce que dit la théorie sur le sujet mais ça se bricole assez bien.
Tu génères un fichier avec 300 commandes :

Code :
  1. select ENSEMBLE ||';'|| Elément ||';'|| 'BT1' ||';'|| BT1 from la_table
  2. ...
  3. ...
  4. select ENSEMBLE ||';'|| Elément ||';'|| 'BT300' ||';'|| BT300 from la_table


Ca se fait bien avec la fonction CONCATENER() d'Excel :D  
 
Tu exécute ce fichier en redirigeant le résultat et tu as un joli fichier .csv à recharger dans la nouvelle base :)
(Faut éviter tout ce qui est présentation, entêtes de colonne ...)


Message édité par mrbebert le 12-12-2012 à 20:40:14

---------------
Doucement le matin, pas trop vite le soir.
n°2167785
maxredphen​ix
Posté le 12-12-2012 à 20:56:03  profilanswer
 

Bonsoir et merci de la réponse,
 
Il n'y a pas un moyen plus rapide de faire cela et en une seule fois? Il devrait il y a avoir une possibilité de une sorte d'ALTER TABLE non?
 
Je vais regarder pour commencer avec ta solution en attendant (et pour ma culture perso :)  )

n°2167792
mrbebert
Posté le 12-12-2012 à 21:44:38  profilanswer
 

Si c'est dans la même base, tu peux faire directement le transfert des données d'une table à l'autre :

Code :
  1. insert into new_table select ENSEMBLE, Elément, 'BT1', BT1 from old_table
  2. ...
  3. insert into new_table select ENSEMBLE, Elément, 'BT300', BT300 from old_table

Le problème, c'est que tu travaille sur la structure (le nombre de colonnes) au lieu de le faire sur les données (rôle normal d'un SGBD). Du coup, le SQL est pas adapté.
Il y a surement moyen de faire la boucle en PL/SQL, ça peut être un exercice intéressant [:figti]
 
edit : enfin l'équivalent du PL/SQL pour mySQL :o


Message édité par mrbebert le 12-12-2012 à 21:45:55

---------------
Doucement le matin, pas trop vite le soir.
n°2168001
maxredphen​ix
Posté le 13-12-2012 à 21:14:20  profilanswer
 

Merci. C'est vrai qu'il faudrait trouver le moyen de faire une boucle parce que la c'est vraiment long sinon.
 
Pour info, j'ai aussi vu ça: les procédures stockées qui pourraient faire quelque chose. Ça te parle?


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Extraire table mysql pour copier avec modif dans une autre

 

Sujets relatifs
[MySQL] Select qui renvoie la valeur n-1 et +1 pour chaque enregistreAfficher une table oracle
Fichier texte trop volumineux/ extraire certaines données vers excel[MySQL] champs date et suite de row consecutive...
Administration Mysql sous EasyPhpcopie des valeurs d'une table dans une autre table
Création d'un tableau html (lignes + colonnes) avec mysqlProblème Connection MySQL sur mon VPS
Difficultés MysqlFunction insérer données texte dans mysql
Plus de sujets relatifs à : Extraire table mysql pour copier avec modif dans une autre


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR