#1 Fri 23 April 2021 15:56
- kevindescamps
- Participant occasionnel
- Lieu: Grenoble
- Date d'inscription: 20 Nov 2013
- Messages: 34
PostgreSQL Problème valeur par défaut d'une colonne
Bonjour,
Dans PostgreSQL, je rencontre un problème avec la fonction "valeur par défaut" disponible depuis l'onglet définition d'une colonne. Ma valeur par défaut n'apparait pas lorsque j'ajoute une entité dans QGIS (voir pièce jointe jointe)
Auriez-vous une idée ?
Pour resituer le contexte, je souhaite qu'un numéro unique soit automatiquement attribué à la nouvelle valeur de mon champ "arbre_id" à la manière d'une clé primaire mais indépendamment de la clé primaire.
Pour le caractère unique j'ai créé une contrainte d'unicité et cela fonctionne très bien, la création d'un doublon est impossible Pour l'aspect numérotation, j'ai créé une séquence intitulé "inventaire_arbre_id_seq" + ajout de la valeur par défaut faisant appel à la séquence.
Je n'ai pas l'habitude de créer et d'exploiter les séquences ainsi jusqu'à présent, je n'utilisais cette fonctionnalité que pour les clés primaires de mes tables et ceci à l'aide du gestionnaire de base de données de QGIS qui gère automatiquement la clé primaire, la séquence, la valeur par défaut, etc...
J'imagine qu'il y a quelque chose que je fais mal dans posgreSQL, mais quoi ?
Merci d'avance pour votre aide
Hors ligne
#2 Mon 26 April 2021 12:05
Re: PostgreSQL Problème valeur par défaut d'une colonne
Bonjour Kevin,
je pense que QGIS affiche la valeur par défaut (ou son expression) pour la clé primaire de la table mais pas pour les autres colonnes de la table
A l'enregistrement de l'entité la valeur par défaut "arbre_id" sera bien attribuée et visible dans la table attributaire de ta "couche".
Mathieu BOSSAERT
Association GeoRezo
Hors ligne
#3 Mon 26 April 2021 16:36
- Franck2908
- Participant actif
- Date d'inscription: 5 Mar 2010
- Messages: 85
Re: PostgreSQL Problème valeur par défaut d'une colonne
Bonjour,
la valeur par défaut sera attribuée à l'enregistrement, elle n'apparaît pas encore sur QGIS car la transaction n'est pas terminée et l'information par défaut n'est donc pas disponible.
Votre numéro unique n'est pas réservé en attente d'un enregistrement. Si c'était le cas, vous auriez des trous dans votre numérotation à chaque annulation d'une saisie dans le cas où vous seriez plusieurs à saisir en même temps.
Dernière modification par Franck2908 (Mon 26 April 2021 16:39)
Hors ligne
#4 Thu 29 April 2021 13:41
Re: PostgreSQL Problème valeur par défaut d'une colonne
pour préciser, la valeur par défaut est réservée au début d'une transaction, qui dans QGIS correspond à la demande d'enregistrement des données. Tant qu'on a pas demandé à QGIS d'enregistrer les données la transaction n'a pas débuté.
Et les trous dans les séries sont fréquents. Par exemple quand des transactions échouent (erreur de géométrie par exemple dans QGIS), ou ROLLBACK demandé dans PostgreSQL car le résultat escompté d'une requête de modification de données n'est pas celui obtenu.
Mathieu BOSSAERT
Association GeoRezo
Hors ligne