Pages: 1
- Sujet précédent - [PostGis] Maj d'une geom en fonction de la geom d'une autre couche - Sujet suivant
#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...
Merci à vous !
Hors ligne
Pages: 1
- Sujet précédent - [PostGis] Maj d'une geom en fonction de la geom d'une autre couche - Sujet suivant