Réinitialisation des séquences d'incrémentation automatique PostgreSQL
PostgreSQL n'utilise pas AUTO_INCREMENT
comme MySQL. Au lieu de cela, il utilise des séquences pour gérer les valeurs auto-incrémentées. Pour réinitialiser la valeur de départ d'une séquence, vous devez identifier le nom de la séquence associé à la colonne à incrémentation automatique de votre table.
Tenter d'utiliser ALTER TABLE product AUTO_INCREMENT = 1453
échouera car PostgreSQL ne reconnaît pas cette syntaxe. L'erreur "la relation 'produit' n'existe pas" est courante.
Le nom de la séquence suit généralement le modèle ${table_name}_${column_name}_seq
. Pour une table nommée "product" avec une colonne "Id", la séquence serait "product_id_seq".
La commande correcte pour réinitialiser la séquence pour qu'elle démarre à 1453 est :
<code class="language-sql">ALTER SEQUENCE product_id_seq RESTART WITH 1453;</code>
Pour trouver le nom de séquence correct, utilisez la commande d
dans l'outil de ligne de commande psql
. Par exemple, d product
affichera la définition de la table, y compris le nom de séquence utilisé par toutes les colonnes auto-incrémentées (via une contrainte par défaut). Alternativement, vous pouvez utiliser une requête telle que SELECT pg_catalog.pg_get_serial_sequence('product', 'id');
pour récupérer directement le nom 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!