Bonjour,
J'ai créé il y a quelques jours ma première BDD PostgreSQL à partir de requêtes DDL générées par le logiciel de modélisation Open ModelSphere et que j'ai dû adapter.

J'ai vu quelque part que pour CREER une table avec une clé primaire auto-incrémentée, il fallait utiliser, à la place du très pratique AUTO_INCREMENT de MySQL, le type 'serial', lequel entraîne la création automatique d'une séquence et le paramétrage de la colonne en DEFAULT nextval('nom_sequence'::regclass). Pourquoi faire simple quand on peut faire compliqué chez PostgreSQL !

Le problème est que j'ai pensé à ce détail pour la première table mais, corrigeant les bugs de mes requêtes DDL au fur et à mesure (character varying au lieu de variable character par exemple), je l'ai oublié pour les autres tables issues des entités de mon MCD.

Ces tables ont donc une clé primaire de type INTEGER ou SMALLINT mais ne sont pas auto-incrémentées.

Malheureusement, il semble qu'il soit impossible de MODIFIER le type de la colonne en 'serial' une fois la table créée ; je me suis tapé un joli message d'erreur quand j'ai essayé de le faire en SQL et le type n'est pas dans la liste proposée dans pgAdmin !

Alors j'ai fait l'effort :
- de créer une séquence sur le modèle de celle qui avait été créée automatiquement ;
- de changer la valeur par défaut de la colonne clé primaire de la table.

Pas de message d'erreur cette fois mais j'ai des doutes quand je regarde pgAdmin...

Pour la table où la clé primaire auto-incrémentée a été faite automatiquement grâce au type serial, je vois que le paramètre Séquence affiche bien le nom de la séquence et l'onglet "Objets dépendants" affiche bien le nom de la séquence.

Pour la table où j'ai voulu faire de même manuellement, ces informations n'apparaissent pas !

Du coup je me demande si c'est correctement implanté et si l'auto-incrémentation va bien s'effectuer.