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

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [Debutant][Mysql]copie de champs d'une table à une autre

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Debutant][Mysql]copie de champs d'une table à une autre

n°1447335
isanaud
Posté le 25-09-2006 à 22:00:14  profilanswer
 

Bonjour,
j'utilise le code suivant sous phpmyadmin pour copier les champs d'une table (etabgenerale) à une autre table (resiliation_numeris)

Citation :

INSERT INTO resiliation_numeris ( rne, nom_etab, num_telephone, ville, numero_numeris)
SELECT ( rne, nom, telephone, ville, tel_oleane) FROM etabgenerale


 
j'ai l'erreur suivante:

Citation :

MySQL a répondu:Documentation
#1064 - You have an error in your SQL syntax near ' nom, telephone, ville, tel_oleane) FROM etabgenerale' at line 2


 
les champs ont été créés pour la table de destination.


Message édité par isanaud le 25-09-2006 à 22:04:09
mood
Publicité
Posté le 25-09-2006 à 22:00:14  profilanswer
 

n°1447343
arnaudm57
Posté le 25-09-2006 à 22:13:03  profilanswer
 

La syntaxe pour une requête INSERT est la suivante :
 
INSERT INTO Table (...) VALUES (...);

n°1447350
isanaud
Posté le 25-09-2006 à 22:23:46  profilanswer
 

j'avais compris que VALUES permettait de mettre les valeurs plutot que des variables.

n°1447354
arnaudm57
Posté le 25-09-2006 à 22:30:31  profilanswer
 

Oui exact, je viens de me rendre compte de mon erreur ...  
 
As tu essayé de rajouter le nom de la base de de données devant tes tables ainsi que le nom des tables devant les différents champs ?


Message édité par arnaudm57 le 25-09-2006 à 22:33:12
n°1447356
isanaud
Posté le 25-09-2006 à 22:35:02  profilanswer
 

oui sans succes

Citation :

INSERT INTO resiliation_numeris ( rne, nom_etab, num_telephone, ville, numero_numeris )
SELECT (
etabgenerale.rne, etabgenerale.nom, etabgenerale.telephone, etabgenerale.ville, etabgenerale.tel_oleane
)


renvoie

Citation :

MySQL a répondu:Documentation
#1064 - You have an error in your SQL syntax near ' etabgenerale.nom, etabgenerale.telephone, etabgenerale.ville, etabgenerale.tel_' at line 3

n°1447357
arnaudm57
Posté le 25-09-2006 à 22:38:08  profilanswer
 

Et en supprimant les parenthèses du SELECT de cette manière:  
 
 

Code :
  1. INSERT INTO resiliation_numeris ( rne, nom_etab, num_telephone, ville, numero_numeris)
  2. SELECT rne, nom, telephone, ville, tel_oleane FROM etabgenerale


Message édité par arnaudm57 le 25-09-2006 à 22:38:37
n°1447362
isanaud
Posté le 25-09-2006 à 22:45:17  profilanswer
 

ca roule, merci

n°1457673
isanaud
Posté le 15-10-2006 à 20:16:29  profilanswer
 

nouvelle question:  :ange:  
 je voudrais recuperer un champ (adresse_network_eth1_amon) d'une table (etabgenerale) vers une autre table (resiliation_numeris) dans le cas ou les champs clé (rne pour les 2 tables) sont egaux
j'ai cette  requete qui ne fonctionne pas..;

Citation :

INSERT INTO resiliation_numeris ( `reseau_etab`) SELECT `adresse_network_eth1_amon`   FROM `etabgenerale` `resiliation_numeris`  WHERE resiliation_numeris.rne=etabgenerale.rne

n°1457697
isanaud
Posté le 15-10-2006 à 21:12:27  profilanswer
 

un  UPDATE me parait pluss approprié mais ne fonctionne pas  :cry:  

Citation :

UPDATE resiliation_numeris SET( `resiliation_numeris.reseau_etab` = `etabgenerale.adresse_network_eth1_amon` ) WHERE `resiliation_numeris.rne` = `etabgenerale.rne`


Message édité par isanaud le 15-10-2006 à 21:18:20
n°1457703
mrbebert
Posté le 15-10-2006 à 21:35:52  profilanswer
 

isanaud a écrit :

nouvelle question:  :ange:  
 je voudrais recuperer un champ (adresse_network_eth1_amon) d'une table (etabgenerale) vers une autre table (resiliation_numeris) dans le cas ou les champs clé (rne pour les 2 tables) sont egaux
j'ai cette  requete qui ne fonctionne pas..;

Citation :

INSERT INTO resiliation_numeris ( `reseau_etab`) SELECT `adresse_network_eth1_amon`   FROM `etabgenerale` `resiliation_numeris`  WHERE resiliation_numeris.rne=etabgenerale.rne


Généralement, le SGBD ne veut pas faire l'insertion dans l'une des tables utilisées pour le SELECT [:proy]  
Faut insérer dans une table temporaire et recopier ensuite vers la table voulue.

mood
Publicité
Posté le 15-10-2006 à 21:35:52  profilanswer
 

n°1457707
isanaud
Posté le 15-10-2006 à 21:50:01  profilanswer
 

Citation :

UPDATE resiliation_numeris SET resiliation_numeris.reseau_etab=etabgenerale.adresse_network_eth1_amon WHERE resiliation_numeris.rne=etabgenerale.rne ;

me repond:

Citation :

ERROR 1054 (42S22): Unknown column 'etabgenerale.rne' in 'where clause'

pour le champ existe bien  :??:

n°1457710
mrbebert
Posté le 15-10-2006 à 21:56:04  profilanswer
 

Evidemment, ou veut tu qu'il trouve ce champ "etabgenerale.rne" :??:  
 
Essaie quelque chose du genre :
UPDATE resiliation_numeris, etabgenerale SET resiliation_numeris.reseau_etab=etabgenerale.adresse_network_eth1_amon WHERE resiliation_numeris.rne=etabgenerale.rne ;

n°1457806
isanaud
Posté le 16-10-2006 à 09:20:11  profilanswer
 

merci ca marche

n°1489618
isanaud
Posté le 11-12-2006 à 15:44:30  profilanswer
 

autre question : dans une meme table, je veux copier la valeur d'une ligne dans une autre ligne
Dans la première ligne je veux récupérer la vaeur qui correspond à l'info amon et la copier dans la valeur qui correspond à shiva.
J'ai donc la requete suivante:  

Citation :

update `info_serveur` set `valeur` = (select `valeur` where `info` = 'amon') where `info` = 'shiva';


 
MySql me repond:  

Citation :

You have an error in your SQL syntax.  Check the manual that corresponds to your MySQL server version for the right syntax to use near 'select `valeur` where `info` = 'amon') where `info` = 'shiva''

 :??:

n°1494413
-ThX-
Not here anymore
Posté le 20-12-2006 à 17:19:30  profilanswer
 

isanaud a écrit :


Citation :

update `info_serveur` set `valeur` = (select `valeur` where `info` = 'amon') where `info` = 'shiva';




 
 :pt1cable:  

n°1494867
Kilyn
Milé sek milé
Posté le 21-12-2006 à 15:51:09  profilanswer
 

Bon j'arrive peut-être trop tard mais pourquoi des quotes (') entre le nom des champs et des tables ? Regarde la requête précédente que t'as fournie mrbebert et analyse là. Tu ne dois mettre que les valeurs chaîne entre quote, notamment pour les critères de sélection (clause WHERE).

 

Dans ta requête de mise à jour tu ne dois laisser en commentaire que amon et shiva.

 

Je te mets la version correcte de la requête car tu as oublié un FROM dans le SELECT :

update info_serveur set valeur = (select valeur from info_serveur where info = 'amon') where info = 'shiva';


Voilà. :jap:


Message édité par Kilyn le 21-12-2006 à 15:52:03

---------------
Nous ne sommes pas des êtres humains vivant une exprérience spirituelle. Nous sommes des êtres spirituels vivant une expérience humaine.

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

  [Debutant][Mysql]copie de champs d'une table à une autre

 

Sujets relatifs
[MySQL] Modifier 1 ou plusieurs caractères dans une bd?[Débutant] logiciel pour programmer en vb6
[MYSQL] [RESOLU] avec UNION, comment "créer" un champs ?[PHP/Mysql] Pb avec mysql_fetch_row
Champs vide et remplacement d'une valeur donnée.[MySQL] UNION spéciale :)
Classe simple pour mysql : questions !Problème avec requête sql et ordre d'affichage des champs [résolu]
[MySQL] Taille de Blob 
Plus de sujets relatifs à : [Debutant][Mysql]copie de champs d'une table à une autre


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