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Ă© ?

#1 Fri 09 July 2021 23:35

Demonshine
Participant occasionnel
Date d'inscription: 27 May 2021
Messages: 21

PostgreSQL : Erreur contrainte not null clé primaire

Bonjour,

je veux dupliquer une ligne d'une table dans la mĂȘme table sans copier la clĂ© primaire (fid) car elle ne peut pas ĂȘtre en double dans la table.
Il faut qu'un nouveau fid soit incrémenté automatiquement sauf que j'obtiens une erreur comme quoi le fid viole la contrainte not null.
Auriez-vous une solution pour remédier à ce problÚme ?

Merci d'avance,

Hors ligne

 

#2 Sat 10 July 2021 11:37

Nicolas Ribot
Membre
Lieu: Toulouse
Date d'inscription: 9 Sep 2005
Messages: 1566

Re: PostgreSQL : Erreur contrainte not null clé primaire

Bonjour,

Utilisez une sequence (https://www.postgresql.org/docs/13/sql- … uence.html) pour cela, en l'initialisant Ă  la valeur max+1 de la colonne fid (select max(fid) from table).

Dans votre requĂȘte, vous pourrez utiliser nextval('masequence') comme valeur Ă  insĂ©rer pour le champ fid.

Nicolas

Hors ligne

 

#3 Sat 10 July 2021 20:06

tumasgiu
Membre
Lieu: Ajaccio
Date d'inscription: 5 Jul 2010
Messages: 1226

Re: PostgreSQL : Erreur contrainte not null clé primaire

Salut,

si la colonnefid a été définie avec le "type" serial, la valeur par défaut sera nextval('masequence'), et vous n'avez pas besoin de déclarer la colonne fid dans votre insert.

Hors ligne

 

Pied de page des forums

Copyright Association GeoRezo