#1 Thu 12 May 2022 16:43
- bcxav631
- Juste Inscrit !
- Date d'inscription: 25 Mar 2022
- Messages: 6
Mis à jour de données avec Update
Bonjour à tous,
Je voudrais mettre à jour une table dans une base de données postgreSQL.
J'ai donc une table A avec la géométrie correcte et une table B avec la géométrie incorrect.
J'ai un ID commun entre ces deux tables pour la même géométrie.
Je cherche à mettre à jour la table B avec la géométrie de la table A ?
Je vous montre mon exemple de requête mais cela ne fonctionne pas.
UPDATE Table_B
SET Table_B."geom" = Table_A"geom"
FROM Table_A
where Table_B."id" = Table_A.""id"
and Table_B."id" = 'xxxxxxxxxxx'
Merci de votre aide,
Hors ligne
#2 Fri 13 May 2022 12:04
- ppluvinet
- Participant assidu
- Lieu: VALENCE
- Date d'inscription: 6 Aug 2007
- Messages: 617
Re: Mis à jour de données avec Update
Bonjour,
A part les quelques soucis de syntaxe (cf les guillemets et les points), cela devrait fonctionner.
Peut-être y a t il une contrainte sur la TableB qui bloque ?
Quel est le message d'erreur ?
Pascal PLUVINET
Hors ligne
#3 Fri 13 May 2022 12:10
- JP LLORENS
- Participant assidu
- Date d'inscription: 12 Nov 2008
- Messages: 231
Re: Mis à jour de données avec Update
Bonjour.
Quel est le message d'erreur ?
Sous réserve que votre requête ait été écrite telle que celle que l'on peut voir dans votre message :
- je supprimerai toutes les doubles quotes '' pour éviter les doublons ou les oublis : ex
Code:
where Table_B."id" = Table_A.""id"
- il manque un point (.) avant geom dans une ligne
Code:
SET Table_B."geom" = Table_A"geom"
- vous ajoutez un critère Table_B."id" = 'xxxxxxxxxxx' => seule la ligne avec l'id 'xxxxxxx' sera mise à jour
Bon ppluvinet a été plus rapide que moi !
JP
Hors ligne
#4 Fri 13 May 2022 16:10
- bcxav631
- Juste Inscrit !
- Date d'inscription: 25 Mar 2022
- Messages: 6
Re: Mis à jour de données avec Update
Merci beaucoup pour votre aide à tous les deux !!
Finalement j'ai utilisé une sous requête :
UPDATE table_A
SET "geom" = ( select "geom" FROM table_A WHERE id = 'xxxxx')
WHERE id = 'xxxxxx' ;
Merci en tout cas de m'avoir répondu et d'avoir pris du temps !
Bon week-end à vous
Hors ligne