在庫システムを作成していますが、sqlalchemy (postgresql) とトランザクション/セッションについていくつか質問があります。これは TG2 を使用する Web アプリです。これが重要かどうかはわかりませんが、多くの情報は決して悪いことではありません。
在庫数量を変更するときに競合状態にならないようにするにはどうすればよいですか。ユーザーがアイテムの在庫を 0 に減分しようとしていて、ユーザー 2 も在庫を 0 に減分しようとしている場合、それを正しく理解している場合、ユーザー 1 のセッションがまだコミットされていない場合、ユーザー 2 の開始在庫番号は次のようになります。ユーザーのものと同じになると、両方がコミットされたときに競合状態になり、複合効果を持つ代わりに一方が他方を上書きします。
注文番号や請求書番号などに postgresql シーケンスを使用したい場合、競合状態にならずに sqlalchemy から次の値を取得/設定するにはどうすればよいですか?
編集:更新または共有に使用して、with_lockmodeを使用する必要がある解決策を見つけたと思います。私が間違っている場合は、より多くの回答や他の人が私を修正できるように、開いたままにします.
ティア