2

私のアプリケーションでは、複数のリクエストが同時に 1 つのテーブルからレコードを読み取り、それに基づいて新しいレコードをテーブルに挿入します。

2 番目の要求が最初の要求によって挿入された最新の値を読み取るように、要求をシリアルに実行したいと考えています。

select for updateクエリを使用してこれを達成しようとしましたが、既存のレコードを更新できないため、更新を待機するために行のみをロックし、以前のリクエストと同じ値を取得しました。

Oracle のロック機構を使用することは可能ですか? どのように?

4

1 に答える 1

0

おい-それがトランザクションの目的です!

強力な提案:

  1. コードをPL/SQLストアドプロシージャに配置します

  2. 選択/挿入を「begintran/commit」でラップします

  3. あなたがそれを避けることができるならば、ロックについてさえ考えないでください!

于 2012-04-04T02:20:02.347 に答える