PostgreSQL ne prend pas en charge le mot-clé AUTO_INCREMENT
utilisé dans d'autres systèmes de bases de données comme MySQL. Tenter de l'utiliser entraînera une erreur de syntaxe. Ce guide explique comment obtenir des clés primaires à incrémentation automatique dans PostgreSQL.
L'approche recommandée pour PostgreSQL 10 et les versions plus récentes consiste à utiliser la colonne IDENTITY
. Contrairement aux colonnes SERIAL
, les colonnes IDENTITY
offrent plus de flexibilité avec les options GENERATED BY DEFAULT
et GENERATED ALWAYS
.
<code class="language-sql">CREATE TABLE staff ( staff_id int GENERATED ALWAYS AS IDENTITY PRIMARY KEY, staff text NOT NULL );</code>
<code class="language-sql">ALTER TABLE staff ADD COLUMN staff_id int GENERATED ALWAYS AS IDENTITY;</code>
Pour les anciennes versions de PostgreSQL (9.6 et inférieures), le pseudo-type SERIAL
fournit une fonctionnalité d'auto-incrémentation similaire.
<code class="language-sql">CREATE TABLE staff ( staff_id serial PRIMARY KEY, staff text NOT NULL );</code>
SERIAL
crée et gère automatiquement une séquence associée, garantissant des valeurs uniques et incrémentielles pour la colonne staff_id
.
Pour un contrôle précis des valeurs insérées, voire en remplaçant les valeurs par défaut du système ou les valeurs fournies par l'utilisateur, utilisez OVERRIDING {SYSTEM|USER} VALUE
dans vos instructions INSERT
. Cela offre un contrôle avancé au-delà de la simple incrémentation automatique.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!