banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Pour sa 21ème année, l’association GeoRezo a toujours besoin de vous !

10€ = 1 mois de frais bancaires ; 15€ = 12 mois de nom de domaine ; 30€ = 1 semaine de location des serveurs …

Faire un don 

Retrouver nos membres bienfaiteurs

#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: 726

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: 3199
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: 223

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

 

Pied de page des forums

Powered by FluxBB