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

copie de champs d'une table à une autre [Debutant][Mysql] - SQL/NoSQL - Programmation

Marsh Posté le 25-09-2006 à 22:00:14    

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
Reply

Marsh Posté le 25-09-2006 à 22:00:14   

Reply

Marsh Posté le 25-09-2006 à 22:13:03    

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

Reply

Marsh Posté le 25-09-2006 à 22:23:46    

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

Reply

Marsh Posté le 25-09-2006 à 22:30:31    

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
Reply

Marsh Posté le 25-09-2006 à 22:35:02    

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

Reply

Marsh Posté le 25-09-2006 à 22:38:08    

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
Reply

Marsh Posté le 25-09-2006 à 22:45:17    

ca roule, merci

Reply

Marsh Posté le 15-10-2006 à 20:16:29    

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

Reply

Marsh Posté le 15-10-2006 à 21:12:27    

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
Reply

Marsh Posté le 15-10-2006 à 21:35:52    

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.

Reply

Marsh Posté le 15-10-2006 à 21:35:52   

Reply

Marsh Posté le 15-10-2006 à 21:50:01    

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  :??:

Reply

Marsh Posté le 15-10-2006 à 21:56:04    

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 ;

Reply

Marsh Posté le 16-10-2006 à 09:20:11    

merci ca marche

Reply

Marsh Posté le 11-12-2006 à 15:44:30    

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''

 :??:

Reply

Marsh Posté le 20-12-2006 à 17:19:30    

isanaud a écrit :


Citation :

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




 
 :pt1cable:  

Reply

Marsh Posté le 21-12-2006 à 15:51:09    

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.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed