Message posté par : SGREF
----------------------------------------
Bonjour,
En PgSQL, j'aimerai faire appel à plusieurs séquences pour générer un ID.
Quand je dis "plusieurs" je ne sais même pas si cela est possible, je
m'explique :
Il s'agit d'une table, contenant des polyognes, utilisée sur QGIS, où il y a
continuellement de nouvelles entités.
J'ai besoin de générer une ID automatique qui diffère selon le département où se
trouve le nouveau polygone, et qui comprendrait donc le code_insee du département.
Concrètement je pensais créer une séquence par département nommée
"codeinseedepartement_seq" et aller chercher la "nextval" de la
séquence correspondante en récupérant le code insee du département de la nouvelle entité
par st_intersects. Le tout dans une trigger function :
-----------------
Code :
BEGIN
UPDATE projet.test_zone zp set ID = nextval(s2.nom_sequence)
FROM
(SELECT
s1.gid,
concat('projet.',s1.code_insee_dep, '_seq') AS nom_sequence
FROM (SELECT
t1.gid,
t2.code_insee_dep
FROM projet.test_zone as t1
INNER JOIN limite.departement as t2
ON ST_Intersects(t1.geom,t2.geom)
)s1
)s2
WHERE zp.gid = NEW.gid;
RETURN NEW;
END;
-----------------
Mais visiblement ça ne fonctionne pas.
Etant complétement novice en pgsql, je me dis que je suis potentiellement complétement à
côté de la plaque, j'en appelle donc à votre aide/imagination.
Merci d'avance pour vos réponses.
----------------------------------------
Le message est situé
https://georezo.net/forum/viewtopic.php?pid=345528#p345528
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