Postgres 10 ou version ultérieure
serial
colonnes (voir ci-dessous) restent inchangées. Mais considérez une IDENTITY
colonne. Postgres 10 implémente cette fonctionnalité SQL standard.
Syntaxe de base et informations dans le manuel pour CREATE TABLE
.
Explication détaillée dans cette entrée de blog de son auteur principal Peter Eisentraut.
Créer table avec IDENTITY
colonne
CREATE TABLE staff (
staff_id int GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY
, staff text NOT NULL
);
Ajouter IDENTITY
colonne à la table existante
Le tableau peut ou non être rempli de lignes.
ALTER TABLE staff ADD COLUMN staff_id int GENERATED BY DEFAULT AS IDENTITY;
Pour en faire également le PK en même temps (la table ne peut pas encore avoir de PK) :
ALTER TABLE staff ADD COLUMN staff_id int GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY;
Connexe :
- Comment ajouter une colonne d'identité PostgreSQL 10 à une table existante avec des lignes ?
Remplacer serial
avec IDENTITY
colonne
Voir :
- Comment changer un ID de table de série en identité ?
Postgres 9.6 ou version antérieure
(Ou n'importe quelle version, vraiment.)
Utilisez le serial
type de pseudo-données à la place :
CREATE TABLE staff (
staff_id serial PRIMARY KEY,
, staff text NOT NULL
);
Il crée et attache automatiquement l'objet séquence et définit le DEFAULT
à nextval()
de la séquence. Il fait tout ce dont vous avez besoin.
J'ai utilisé des identifiants en minuscules dans mon exemple. Facilite votre vie avec Postgres.