Maison > base de données > tutoriel mysql > Comment implémenter des colonnes à incrémentation automatique dans PostgreSQL ?

Comment implémenter des colonnes à incrémentation automatique dans PostgreSQL ?

Mary-Kate Olsen
Libérer: 2025-01-22 11:32:09
original
530 Les gens l'ont consulté

How Do I Implement Auto-Incrementing Columns in PostgreSQL?

Implémentation de 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 :

CREATE TABLE Staff   (
  ID        INTEGER NOT NULL AUTO_INCREMENT,
  Name      VARCHAR(40) NOT NULL,
  PRIMARY KEY (ID)
);
Copier après la connexion

Cependant, une erreur est renvoyée :

<code>ERROR: ERROR: syntax error at or near "AUTO_INCREMENT"
SQL state: 42601
Character: 63</code>
Copier après la connexion

Version PostgreSQL et incrémentation automatique

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 :

CREATE TABLE staff (
  staff_id int GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
  staff    text NOT NULL
);
Copier après la connexion

PostgreSQL 9.6 ou version antérieure

Pour PostgreSQL 9.6 ou version antérieure, utilisez le type de données série :

CREATE TABLE staff (
  staff_id serial PRIMARY KEY,
  staff    text NOT NULL
);
Copier après la connexion
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.

Autres notes

  • Utilisez des identifiants légaux, en minuscules et sans guillemets pour une utilisation plus facile dans PostgreSQL.
  • Utilisez OVERRIDING {SYSTEM|USER} VALUE si nécessaire pour remplacer les valeurs du système ou les entrées de l'utilisateur dans les commandes INSERT.

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal