表示するために、いくつかのテーブル行のスナップショット (SELECT) を取得する必要があります。これらの行は、同じトランザクション内で変更または削除されることはなく、それらの行を変更する可能性のある別のトランザクションに送信されることもありません。Postgresql関数での単純なスナップショットのような読み取りのみが必要です。
例えば:
SELECT * FROM "my_table" WHERE "amount" < 1000;
Postgresql 関数で READ COMMITTED トランザクション レベルを設定することを考えていました。
SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
これにより、他の重くて複雑なトランザクションが同時に実行されていても、SELECT で例外に直面することはなくなりますか? はい、そう思いますが、私は Postgresql の専門家ではありません。
アップデート:
もっと読んだ後、これもトリックになるのではないかと思いますか?
SET TRANSACTION ISOLATION LEVEL READ ONLY DEFERRABLE