banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Wed 05 November 2014 15:05

Razorbak
Participant assidu
Lieu: Clermont Ferrand
Date d'inscription: 7 Oct 2007
Messages: 505

[PostGis] Maj d'une geom en fonction de la geom d'une autre couche

Bonjour,

Je dispose de 2 couches contenant les mêmes objets mais à des époques différentes.
Certains objets ont donc le même identifiant mais la géométrie a évolué.

Comment puis-je faire pour mettre à jour la colonne géométrie de ma première couche avec la géométrie de la seconde lorsque les identifiants sont les mêmes ?
Pour l'instant, j'ai commencé à écrire cette requête mais il doit manquer des choses :

Code:

update  table_new SET geom
from (select geom from table_old where id = '22500')
where id = '22500'

Merci beaucoup et bonne journée !

Hors ligne

 

#2 Wed 05 November 2014 15:10

SANTANNA
Moderateur
Lieu: Angers
Date d'inscription: 18 Jan 2008
Messages: 3941

Re: [PostGis] Maj d'une geom en fonction de la geom d'une autre couche

bonjour,
Essaie ceci

Code:

update  table_new n
SET geom = o.geom
from table_old o
where n.id = o.id

Hors ligne

 

#3 Wed 05 November 2014 15:41

Razorbak
Participant assidu
Lieu: Clermont Ferrand
Date d'inscription: 7 Oct 2007
Messages: 505

Re: [PostGis] Maj d'une geom en fonction de la geom d'une autre couche

Bonjour,

Merci Santanna.
J'ai donc essayé ta proposition en complétant :

Code:

update  table_new n
SET geom = o.geom
from table_old o
where n.id = o.id and n.id = '22500'

En effet, je ne veux pas tout mettre à jour mais contrôler les modifications sur certains objets seulement.
La requête s'exécute sans erreur mais rien n'a été modifié.

J'ai enlevé la partie n.id = o.id également en laissant que le filtre sur l'objet en question, mais rien de mieux.

Une idée ?

Merci

Hors ligne

 

#4 Wed 05 November 2014 16:13

Nicolas Ribot
Membre
Lieu: Toulouse
Date d'inscription: 9 Sep 2005
Messages: 1554

Re: [PostGis] Maj d'une geom en fonction de la geom d'une autre couche

Bonjour,

Je vous invite a tester votre requete avec un select avant un update: si la condition de l'update n'est pas bonne, vous risquez d'écraser des valeurs dans table_new. (si vous n'avez pas de sauvegarde de la table, ca peut faire mal...)

Qd vous etes sur que les objets concernés sont les bons, vous transformez le select en update.

Les identifiants sur les tables sont bien de type TEXT et pas INT ou BIGINT (si int, ne pas mettre les quotes autour de 22500) ?

Que donne :

Code:

select * from table_new where id = '22500';

et 

select * from table_old where id = '22500';

Nico

Hors ligne

 

#5 Wed 05 November 2014 16:27

Razorbak
Participant assidu
Lieu: Clermont Ferrand
Date d'inscription: 7 Oct 2007
Messages: 505

Re: [PostGis] Maj d'une geom en fonction de la geom d'une autre couche

Merci à tous les 2.
En fait, la requête de Santanna marchait très bien...
C'est juste que je m'étais trompé de table d'origine...la honte...smile

Merci à vous !

Hors ligne

 

Pied de page des forums

Powered by FluxBB