Lors de la création d'une table dans PostgreSQL, vous pouvez rencontrer des erreurs lorsque vous essayez d'utiliser l'option AUTO_INCREMENT pour une colonne de clé primaire. Cet article aborde ce problème et propose une solution complète pour les colonnes de tableau à incrémentation automatique.
Le message d'erreur rencontré indique une erreur de syntaxe liée au mot clé AUTO_INCREMENT. PostgreSQL ne prend pas en charge le mot-clé AUTO_INCREMENT. Au lieu de cela, il utilise différentes techniques pour générer automatiquement des valeurs de clé primaire.
Pour PostgreSQL 10 et versions ultérieures, la méthode préférée pour incrémenter automatiquement les clés primaires est la colonne IDENTITÉ. Une colonne IDENTITY est un type spécial de colonne qui génère automatiquement une valeur unique pour chaque ligne.
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>
GENERATED ALWAYS garantit que les valeurs des colonnes sont automatiquement générées même si les valeurs sont fournies explicitement dans l'instruction INSERT.
Pour PostgreSQL 9.6 et versions antérieures, le pseudo-type de données série peut être utilisé pour incrémenter automatiquement les clés primaires. La colonne série crée un objet séquence en arrière-plan et définit automatiquement la valeur par défaut de la colonne sur la valeur suivante de la séquence.
Pour créer un tableau avec une colonne série :
<code class="language-sql">CREATE TABLE staff ( staff_id serial PRIMARY KEY, staff text NOT NULL );</code>
Les colonnes IDENTITY et série génèrent automatiquement des valeurs, mais vous pouvez remplacer ces valeurs à l'aide de la syntaxe OVERRIDING SYSTEM|USER VALUE dans l'instruction 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!