Précédent   Forum des professionnels en informatique > Bases de données > PostgreSQL > Requêtes
Requêtes Forum d'entraide sur les requêtes SQL spécifiques à PostgreSQL, les triggers, les vues, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 17/01/2011, 15h40   #1
Invité de passage
 
Inscription : janvier 2011
Messages : 8
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 8
Points : 2
Points : 2
Par défaut Copie de colonnes

Bonjour,

je voudrais alimenter une colonne cgcart d'une table roe à partir de la colonne cgcart d'une autre table mais uniquement pour les lignes où elles ont l'identifiant id_r en commum?

Code :
INSERT INTO bd.roe SELECT roe_geo.cgcart FROM catalogue.roe_geo WHERE roe.id_r = roe_geo.id_r;
J'ai essayé ce code mais cela me met:
Code :
 référence invalide d'une entrée de la clause FROM pour la table « roe »
Un autre code serait possible avec update mais le mien ne marche pas non plus..
Code :
UPDATE bd.roe SET roe.cgcart = roe_geo.cgcart FROM catalogue.roe_geo WHERE roe.id_r = roe_geo.id_r;
Est-ce qu'un autre code serait plus adapté et il faut juste que j'essaye de corriger celui-là?
Aquatic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/01/2011, 18h18   #2
Modérateur
 
Inscription : octobre 2008
Messages : 1 505
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : octobre 2008
Messages : 1 505
Points : 2 034
Points : 2 034
Quel est le message d'erreur que produit l'UPDATE?
estofilo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/01/2011, 18h47   #3
Invité de passage
 
Inscription : janvier 2011
Messages : 8
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 8
Points : 2
Points : 2
Cela me met:
ERREUR: la colonne « roe » de la relation « roe » n'existe pas

J'ai essayé avec ce code:
Code :
1
2
3
UPDATE bd.roe
SET cgcart = b.cgcart FROM bd.roe c,catalogue.roe_geo b
WHERE c.id_r = b.id_r;
Mais là je crois qu'il recopie toute la colonne à chaque fois avec la même valeur car la requête n'en finit pas.. puisque quand je met ce code en-dessous, la valeur correspondant à ROE10, par exemple, apparaît dans toute la colonne

Code :
1
2
3
UPDATE bd.roe
SET cgcart = b.cgcart FROM bd.roe c,catalogue.roe_geo b
WHERE c.id_r = b.id_r AND b.id_r='ROE10';
Aquatic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/01/2011, 19h26   #4
Modérateur
 
Inscription : octobre 2008
Messages : 1 505
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : octobre 2008
Messages : 1 505
Points : 2 034
Points : 2 034
La table destination de l'UPDATE ne doit pas être répétée dans le FROM
Ca donnerait plutôt ça:
Code :
1
2
3
4
 
UPDATE bd.roe AS c
SET cgcart = b.cgcart FROM catalogue.roe_geo b
WHERE c.id_r = b.id_r;
estofilo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2011, 09h14   #5
Invité de passage
 
Inscription : janvier 2011
Messages : 8
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 8
Points : 2
Points : 2
Merci!!! Ca marche! (Je n'y croyais plus Ca faisait un moment que je calais sur ce problème..)
Aquatic est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h11.


 
 
 
 
Partenaires

Hébergement Web