#1 Fri 24 September 2021 16:49
- Patricia_85
- Participant occasionnel
- Lieu: Bourges
- Date d'inscription: 6 Apr 2012
- Messages: 10
PostgreSQL-QGIS Identifiant unique
Bonjour,
Je crée des points sur une table PostgreSQL/PostGIS à partir de QGIS 3.16.
La numérotation de l'identifiant unique se fait automatiquement :
nextval('ma_table_id_seq'::regclass)
Quand je supprime des lignes, je souhaiterais reprendre la numérotation à partir du dernier objet conservé dans la table.
Il se trouve que la numérotation garde en mémoire les numéros des lignes supprimées et donc j'obtiens des trous dans la suite des numéros.
J'ai tenté un Vaccum Full, sans succÚs.
Est-il possible de retirer de la mémoire de Postgres les numéros des lignes supprimées ?
En espĂ©rant ĂȘtre claire dans mes explications.
Merci d'avance pour réponses.
Hors ligne
#2 Fri 24 September 2021 17:14
- chanteclair
- Participant assidu
- Lieu: Pau
- Date d'inscription: 3 Jan 2007
- Messages: 750
Re: PostgreSQL-QGIS Identifiant unique
Bonjour,
Il faut corriger la séquence de numérotation de la table dans un outil comme PGAdmin.
Cordialement.
Hors ligne
#3 Fri 24 September 2021 17:20
- Patricia_85
- Participant occasionnel
- Lieu: Bourges
- Date d'inscription: 6 Apr 2012
- Messages: 10
Re: PostgreSQL-QGIS Identifiant unique
Merci pour votre réponse.
Nous sommes plusieurs à alimenter cette table, je ne suis pas spécialiste, pensez-vous qu'une fonction-trigger pourrait régler notre problÚme.
Et si oui, connaissez-vous le contenu de cette fonction ?
Merci
Hors ligne
#4 Fri 24 September 2021 17:33
- Patricia_85
- Participant occasionnel
- Lieu: Bourges
- Date d'inscription: 6 Apr 2012
- Messages: 10
Re: PostgreSQL-QGIS Identifiant unique
Je viens de trouver cette requĂȘte, elle semble rĂ©pondre Ă ma question.
SELECT setval('your_table_id_seq', COALESCE((SELECT MAX(id)+1 FROM your_table), 1), false);
COMMIT;
Merci encore
Hors ligne
#5 Mon 27 September 2021 17:22
- ChristopheV
- Membre
- Lieu: Ajaccio
- Date d'inscription: 7 Sep 2005
- Messages: 3235
- Site web
Re: PostgreSQL-QGIS Identifiant unique
Bonjour,
C'est pas vraiment de bonne pratique ce que vous faites.
Soit on utilise un sérial est c'est le comportement classique, numéro attribué une et une seule fois.
Soit vous gĂ©rez vous mĂȘme votre id unique.
LĂ c'est un mixte des deux qui n'est pas trĂšs orthodoxe.
AprÚs ça marche ... mais ...
Christophe
L'avantage d'ĂȘtre une Ăźle c'est d'ĂȘtre une terre topologiquement close
Hors ligne
#6 Fri 26 November 2021 11:36
- Patricia_85
- Participant occasionnel
- Lieu: Bourges
- Date d'inscription: 6 Apr 2012
- Messages: 10
Re: PostgreSQL-QGIS Identifiant unique
Bonjour,
Effectivement Christophe V, vous avez raison.
C'était une demande particuliÚre de certains utilisateurs.
Finalement, nous avons décidé de ne pas de corriger la séquence, trop compliqué avec plusieurs utilisateurs et pas utile dans notre cas.
Merci à tous pour vos réponses
Bonne journée
Hors ligne
#7 Mon 29 November 2021 10:32
- Hydrolithe
- Participant assidu
- Lieu: Lyon
- Date d'inscription: 21 Apr 2010
- Messages: 225
Re: PostgreSQL-QGIS Identifiant unique
Bonjour,
A noter que depuis PostgreSQL 10, il est possible (voire préférable, chacun jugera selon ses besoins) d'utiliser GENERATED AS IDENTITY plutÎt que "serial". Cette syntaxe est définie dans les spécifications ANSI-SQL alors que pour "serial", c'est une syntaxe de PostgreSQL.
Pour plus d'informations sur les intĂ©rĂȘts et les diffĂ©rentes options : https://www.postgresqltutorial.com/post … ty-column/
Pierre
Hors ligne
#8 Tue 01 March 2022 15:23
- Patricia_85
- Participant occasionnel
- Lieu: Bourges
- Date d'inscription: 6 Apr 2012
- Messages: 10
Re: PostgreSQL-QGIS Identifiant unique
Merci pour l'info, je vais regarder.
Bonne journée
Hors ligne

