Maison > base de données > tutoriel mysql > Comment implémenter correctement les clés primaires à incrémentation automatique dans PostgreSQL ?

Comment implémenter correctement les clés primaires à incrémentation automatique dans PostgreSQL ?

Susan Sarandon
Libérer: 2025-01-22 11:41:10
original
702 Les gens l'ont consulté

How Do I Properly Implement Auto-Incrementing Primary Keys in PostgreSQL?

Dépannage des colonnes d'incrémentation automatique PostgreSQL

Vous pouvez rencontrer des erreurs lorsque vous essayez d'utiliser AUTO_INCREMENT pour numéroter automatiquement les clés primaires dans PostgreSQL. Examinons les causes possibles et leurs solutions :

PostgreSQL 10 et supérieur

Dans PostgreSQL 10 et supérieur, il est recommandé d'utiliser la colonne IDENTITY du SQL standard au lieu de AUTO_INCREMENT.

Créer un tableau avec la colonne IDENTITÉ

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

Ajouter la colonne IDENTITY à la table existante

ALTER TABLE staff ADD COLUMN staff_id int GENERATED ALWAYS AS IDENTITY;
Copier après la connexion

Faites-en également la clé primaire :

ALTER TABLE staff ADD COLUMN staff_id int GENERATED ALWAYS AS IDENTITY PRIMARY KEY;
Copier après la connexion

PostgreSQL 9.6 ou version antérieure

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

CREATE TABLE staff (  
 staff_id serial PRIMARY KEY  
, staff text NOT NULL  
);
Copier après la connexion

Notes supplémentaires

Veuillez vous assurer d'utiliser des identifiants valides (minuscules, sans guillemets) pour éviter des problèmes potentiels.

Si vous souhaitez remplacer les colonnes série par des colonnes IDENTITÉ, veuillez vous référer à ce document pour obtenir des conseils.

Vous pouvez utiliser OVERRIDING {SYSTEM|USER} VALUE 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