sql に関する記事
Relyt One チームによる sql に関する記事、ガイド、エンジニアリングノート。
3 件の記事

Postgres の ID が番号を飛ばす理由と、インポート後の「duplicate key」エラーの直し方
PostgreSQL の serial 列と ID 列(identity)で番号の欠番が生じる原因(ロールバック、ON CONFLICT、クラッシュ、CACHE)、データのインポート直後に duplicate key value violates unique constraint で挿入が失敗する理由、すべてのシーケンスをまとめてリセットする 1 つのクエリ、integer の ID が尽きたとき、そして欠番のない請求書番号を扱います。すべてのステートメントを Postgres 17.11 で再現しています。

Postgres をジョブキューにする:FOR UPDATE SKIP LOCKED の正しい使い方
PostgreSQL 17 で SELECT ... FOR UPDATE SKIP LOCKED を使ってバックグラウンドジョブのキューを作る方法を説明します。素朴な SELECT してから UPDATE する方法で同じジョブが 2 回取得される理由、FOR UPDATE だけではワーカーが待たされる理由、リースとリトライ、LISTEN/NOTIFY、VACUUM、そしてポーリングするワーカーがサーバーレスのコンピュートに与える影響を扱います。すべてのステートメントを Postgres 17.11 で再現しています。

Postgres の INSERT ... ON CONFLICT と MERGE:どちらで upsert すべきか、それぞれが出すエラー
PostgreSQL 17 で INSERT ... ON CONFLICT と MERGE をどう使い分けるか、MERGE が並行実行時に重複キーエラーで失敗する理由、そして「cannot affect row a second time」、空の RETURNING、「no unique or exclusion constraint matching the ON CONFLICT specification」の直し方を説明します。すべてのステートメントを Postgres 17.11 で再現しています。
英語版のみの記事もあります。 英語の記事