Message posté par : T. Rossini
----------------------------------------
Salut,
difficile de dire ce qui cloche avec votre requête
si vous n'en donnez pas un extrait.
Cela dit, votre problème de perte d'unicité
provient du fait que vous utilisez st_dump,
qui explose vos multi polygones en plusieurs
polygones et donc repetant l'ID du multi_polygone
original.
Seule solution, pour avoir une seul ligne par id,
qui regrouperait tous les morceaux de polygones
intersectés, supprimez l'appel à st_dump et conservez
des multipolygones.
Si st_intersection renvoie une geometrycollection,
vous pouvez "forcer" son type en multipolygon
en utilisant la fonction ST_CollectionHomogenize.
Il se peut par contre que st_intersection renvoie
des collections de géométries composées de plusieurs type.
Dans ce cas, vous pouvez compter sur ST_CollectionExtract
(en filtrant pour ecarter les geometries résultantes qui sont vides,
exemple, st_intresection ne renvoyant que des lignes ou des points).
Mais même avec votre traitement actuel
vous ne perdez pas vraiment l'ID IGN puisqu'il est conservé
pour chaque polygone, il est seulement répété.
C'est sûr vous perdez l'unicité, mais est ce que vous en avez vraiment
besoin ?
Si oui, à la limite,
peut être pouvez vous créer une clé primaire composite
id+géométrie ?
Tout cela pour dire, que définir une clé primaire n'a pas toujours de sens,
tout dépend de ce que vous faites avec vos données.
Si par exemple vous avez besoin de cet ID pour joindre votre vue avec
autre chose, le fait qu'il définisse la clé primaire peut ne pas être important.
----------------------------------------
Le message est situé
https://georezo.net/forum/viewtopic.php?pid=325811#p325811
Pour y répondre : geobd(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net