1. ホーム
  2. データベース
  3. ポストグレスキュー

Postgresqlのセルフインクリメントidをキーにした場合の重複問題の解決

2022-01-19 10:43:46

さっそく、コードを見てみましょう~。

SELECT setval('data_tracking_au_sec_id_seq', (SELECT MAX(id) FROM data_tracking_au_sec)+1);

data_tracking_au_sec_id_seq. その後、DDLで表示することができます

data_tracking_au_sec. テーブル名

追記 [Postgresql] - 主キーが自己インクリメントされ、データ挿入時に主キーの一意性違反のプロンプトが表示される。

エラーメモ

1. 主キーがセルフインクリメントであるため、データを挿入すると主キーの一意性違反が発生する

エラーの原因は、自己インクリメント型主キーのシーケンス値と現在の主キーのフィールド値が一致しないため、今度は現在の主キーの最大値をシーケンス値に設定し、次のステートメントを実行する必要があります。

SELECT setval('pgsql_article_id_seq', 60000);

-- シーケンス値を60000に設定するか、現在のテーブルのIdの最大値Max(Id)に設定することができます

以上、個人的な体験談ですが、参考にしていただき、スクリプトハウスをもっと応援していただければと思います。もし、間違いや検討不足がありましたら、お気軽にアドバイスください。