ホームページ >データベース >mysql チュートリアル >PostgreSQL で自動インクリメント主キーを適切に実装するにはどうすればよいですか?

PostgreSQL で自動インクリメント主キーを適切に実装するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2025-01-22 11:41:10685ブラウズ

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

PostgreSQL の自動インクリメント列のトラブルシューティング

PostgreSQL で AUTO_INCREMENT を使用して主キーに自動的に番号を付けようとすると、エラーが発生する場合があります。考えられる原因とその解決策を詳しく見てみましょう:

PostgreSQL 10 以降

PostgreSQL 10 以降では、AUTO_INCREMENT の代わりに標準 SQL の IDENTITY 列を使用することをお勧めします。

IDENTITY 列を含むテーブルを作成します

<code class="language-sql">CREATE TABLE staff (  
 staff_id int GENERATED ALWAYS AS IDENTITY PRIMARY KEY  
, staff text NOT NULL  
);</code>

既存のテーブルに IDENTITY 列を追加

<code class="language-sql">ALTER TABLE staff ADD COLUMN staff_id int GENERATED ALWAYS AS IDENTITY;</code>

これを主キーにもします:

<code class="language-sql">ALTER TABLE staff ADD COLUMN staff_id int GENERATED ALWAYS AS IDENTITY PRIMARY KEY;</code>

PostgreSQL 9.6 以前

9.6 以前の場合は、シリアル疑似データ型を使用します:

<code class="language-sql">CREATE TABLE staff (  
 staff_id serial PRIMARY KEY  
, staff text NOT NULL  
);</code>

追加メモ

潜在的な問題を防ぐために、必ず有効な識別子 (小文字、引用符なし) を使用してください。

シリアル列を IDENTITY 列に置き換える場合は、このドキュメントを参照してください。

OVERRIDING {SYSTEM|USER} VALUE を使用すると、INSERT コマンドでのシステム値またはユーザー入力をオーバーライドできます。

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

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