二人が、同じ残り1個を見る
最後の一冊をAとBが同時に購入しようとしてい ます。二つのトランザクションがそれぞれ SELECT stock を実行し、どちらも1を得ました。
ここではPostgreSQLの既定の分離レベルであるRead Committedを前提にします。通常のSELECTは、その文が始まった時点のスナップショットを読みます。他の取引がまだ確定していなければ、同じ残数が返ることはあります。
「画面で在庫1と見えた」ことだけでは、後の購入時にも残っている約束にはなりません。PostgreSQL 17:Read Committed