0

SELECT ...とを区別するシステムを実装していますSELECT ... FOR UPDATE

通常SELECT ...はエンティティを読み取るために使用され、エンティティは「正しくない」状態になることが許可されています (正しくない = 直後に更新される可能性があります)

SELECT ... FOR UPDATE、オブジェクトを編集する目的でオブジェクトを読み取るために常に使用されるため、オブジェクトの正しい状態を返す必要があります。

今、私は次のことをしようとしています: オブジェクトがステートメントによって読み取られるたびに、同じオブジェクトに対する他のクエリをSELECT ... FOR UPDATEロックします。SELECT ... FOR UPDATEただし、通常SELECT ...は引き続き機能するはずです。

定義済みのロックだけを使用してこれを行う方法はありますか? データベースの分離レベルを見ましたが、それが私の問題の一部ではないと思います。

私はJava、休止状態、およびSQLデータベースを使用しています。

4

1 に答える 1

0

更新の選択が MySQL でロックされません。Oracle、Postgres、MS SQL で動作します。

于 2012-08-09T07:04:56.000 に答える