Maison >base de données >tutoriel mysql >Comment implémenter la fonctionnalité AUTO_INCREMENT dans PostgreSQL ?

Comment implémenter la fonctionnalité AUTO_INCREMENT dans PostgreSQL ?

Linda Hamilton
Linda Hamiltonoriginal
2025-01-22 11:47:13643parcourir

How to Implement AUTO_INCREMENT Functionality in PostgreSQL?

Numérotation automatique PostgreSQL : implémenter la fonction AUTO_INCREMENT

Créer une table contenant une colonne AUTO_INCREMENT dans PostgreSQL peut être difficile, comme le montre l'erreur de syntaxe rencontrée dans l'exemple fourni. Pour résoudre ce problème, nous devons connaître la syntaxe correcte de AUTO_INCREMENT dans PostgreSQL.

Contrairement à d'autres systèmes de bases de données, PostgreSQL n'a pas de type de données AUTO_INCREMENT dédié. Au lieu de cela, il propose deux manières de générer automatiquement des valeurs séquentielles :

PostgreSQL 10 et supérieur

Colonne IDENTITÉ :

À partir de PostgreSQL 10, les colonnes SQL IDENTITY standard peuvent être utilisées. Ces colonnes peuvent être générées par défaut ou toujours de manière déterministe.

Pour créer un tableau avec une colonne IDENTITÉ :

<code class="language-sql">CREATE TABLE staff (
  staff_id INT GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
  staff    TEXT NOT NULL
);</code>

PostgreSQL 9.6 et versions antérieures

Type de données SÉRIE :

Dans ces anciennes versions, le pseudo type de données SERIAL était utilisé pour l'auto-incrémentation des clés primaires. Il crée automatiquement une séquence et définit la valeur DEFAULT sur la valeur suivante de la séquence.

Pour créer un tableau avec des colonnes SERIAL :

<code class="language-sql">CREATE TABLE staff (
  staff_id SERIAL PRIMARY KEY,
  staff    TEXT NOT NULL
);</code>

En utilisant ces méthodes, vous pouvez créer des tables dans PostgreSQL avec des valeurs séquentielles générées automatiquement comme clés primaires.

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:
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