ホームページ >データベース >mysql チュートリアル >Postgres の自動インクリメント カウンターをリセットするにはどうすればよいですか?

Postgres の自動インクリメント カウンターをリセットするにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2025-01-11 15:11:42566ブラウズ

How Do I Reset a Postgres Auto-Increment Counter?

PostgreSQL の自動インクリメント シーケンスのリセット

PostgreSQL は MySQL のように AUTO_INCREMENT を使用しません。代わりに、シーケンスを使用して自動インクリメント値を管理します。 シーケンスの開始値をリセットするには、テーブルの自動インクリメント列に関連付けられたシーケンス名を識別する必要があります。

ALTER TABLE product AUTO_INCREMENT = 1453 を使用しようとすると、PostgreSQL がこの構文を認識しないため失敗します。 「リレーション 'product' が存在しません」というエラーがよく発生します。

シーケンス名は通常、${table_name}_${column_name}_seq のパターンに従います。 「Id」列を持つ「product」という名前のテーブルの場合、シーケンスは「product_id_seq」になります。

シーケンスを 1453 から開始するようにリセットする正しいコマンドは次のとおりです。

<code class="language-sql">ALTER SEQUENCE product_id_seq RESTART WITH 1453;</code>

正しいシーケンス名を見つけるには、d コマンドライン ツールの psql コマンドを使用します。 たとえば、d product は、自動インクリメント列 (デフォルトの制約経由) で使用されるシーケンス名を含むテーブル定義を表示します。 あるいは、SELECT pg_catalog.pg_get_serial_sequence('product', 'id'); のようなクエリを使用してシーケンス名を直接取得することもできます。

以上がPostgres の自動インクリメント カウンターをリセットするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。