Maison >base de données >tutoriel mysql >Comment réinitialiser un compteur à incrémentation automatique Postgres ?

Comment réinitialiser un compteur à incrémentation automatique Postgres ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-11 15:11:42582parcourir

How Do I Reset a Postgres Auto-Increment Counter?

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!

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