Maison >base de données >tutoriel mysql >Comment implémenter des colonnes à incrémentation automatique dans PostgreSQL ?
Une erreur peut survenir lorsque vous essayez d'utiliser AUTO_INCREMENT pour numéroter automatiquement les clés primaires dans PostgreSQL. Le code SQL suivant montre un exemple de tentative de création d'une table à l'aide d'AUTO_INCREMENT :
<code class="language-sql">CREATE TABLE Staff ( ID INTEGER NOT NULL AUTO_INCREMENT, Name VARCHAR(40) NOT NULL, PRIMARY KEY (ID) );</code>
Cependant, une erreur est renvoyée :
<code>ERROR: ERROR: syntax error at or near "AUTO_INCREMENT" SQL state: 42601 Character: 63</code>
Cette erreur se produit car AUTO_INCREMENT n'est pas une syntaxe valide pour l'auto-incrémentation dans PostgreSQL. Au lieu de cela, différents mécanismes sont utilisés selon la version de PostgreSQL :
PostgreSQL 10 ou supérieur
Pour PostgreSQL 10 ou version ultérieure, utilisez le type de colonne IDENTITY. La syntaxe est la suivante :
<code class="language-sql">CREATE TABLE staff ( staff_id int GENERATED ALWAYS AS IDENTITY PRIMARY KEY, staff text NOT NULL );</code>
PostgreSQL 9.6 ou version antérieure
Pour PostgreSQL 9.6 ou version antérieure, utilisez le type de données série :
<code class="language-sql">CREATE TABLE staff ( staff_id serial PRIMARY KEY, staff text NOT NULL );</code>Le type de pseudo-données
série crée automatiquement un objet séquence et définit DEFAULT sur la valeur suivante de la séquence.
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!