Pages: 1
- Sujet précédent - Postgre - auto incrémentation en fonction de la valeur d'une colonne - Sujet suivant
#1 Fri 11 February 2022 10:22
- croy
- Juste Inscrit !
- Date d'inscription: 16 Dec 2021
- Messages: 4
Postgre - auto incrémentation en fonction de la valeur d'une colonne
Bonjour à tou.te.s,
J'ai une table "terrier" dans une base postgre/postgis et j'essaye de remplir un champ cdterrier qui aurait ce format "idparcelle_nextvalue", le nexvalue s'incrémenterait de +1 en fonction de l'id de la parcelle, ex : si je saisis un premier terrier dans la parcelle 781, le cdterrier s'incrémentera avec 781_1, puis si je saisis un terrier dans la parcelle 825, alors le cdterrier s'incrémentera avec 825_1, puis si je saisis un second terrier dans la parcelle 825, alors le cdterrier s'incrémentera avec 825_2, etc.
Je pensais le faire avec un trigger et une (ou plusieurs?) séquence mais je n'arrive pas à trouver le moyen d'incrémenter le serial en fonction de l'idparcelle.
Si vous avez une idée, je suis preneur.
Merci d'avance,
Cédric
Hors ligne
#2 Fri 11 February 2022 11:21
Re: Postgre - auto incrémentation en fonction de la valeur d'une colonne
Bonjour
Dans votre cas, je n'utiliserai pas de séquence (je suppose que vous ne voulez pas de trous dans votre numérotation) mais uniquement un trigger "AFTER". Charge à vous de déterminer le n+1.
Remarque: vous utilisez PostgreSQL ou Postgres mais pas Postgre
Jean-Marie
Azimut
Hors ligne
#3 Fri 11 February 2022 12:28
- croy
- Juste Inscrit !
- Date d'inscription: 16 Dec 2021
- Messages: 4
Re: Postgre - auto incrémentation en fonction de la valeur d'une colonne
Bonjour Jean-Marie,
Merci pour votre réponse,
Voici comment j'ai procédé pour arriver à ce que je voulais.
Code:
UPDATE app_hamster.met_terrier SET cd_terrier = concat(id_parcelle,'_',(select count(*) from app_hamster.met_terrier WHERE ST_intersects (met_terrier.geom, met_parcelle.geom) GROUP BY met_parcelle.id_parcelle)) FROM app_hamster.met_parcelle WHERE ST_intersects (met_terrier.geom, met_parcelle.geom) AND cd_terrier is null;
Le UPDATE fonctionne bien, il faut que je créé le trigger avec celui-ci
Cédric
Dernière modification par croy (Fri 11 February 2022 12:29)
Hors ligne
Pages: 1
- Sujet précédent - Postgre - auto incrémentation en fonction de la valeur d'une colonne - Sujet suivant