データベース制御(照会・更新・削除)などの機能・制限事項

Q. 同じDBのレコードに対して、同時に更新をしようとした場合、排他処理の方法は、どうしたらよいでしょうか?

製品の種類
:実行版開発版サーバー版ServerLogViewerADツール

Answer


dbSheetでは排他制御として、①楽観ロック方式、②悲観ロック方式の2つを用意しています。

①楽観ロック方式の場合

1)同時に、同一レコードについては更新することはできず、先に更新したほうが優先となります。

2)更新するレコードが異なる場合には、それぞれのレコードに対して、同時に更新することが可能です。

②悲観ロック方式の場合

1)10100.SQL実行の動作設定-基本設定で、「取得レコードを悲観ロックで排他制御」にチェックして、実行すると、照会したサーバー側のレコードについては、「DBS_STATUS」の値が「3」 に設定され、他のユーザーは、「3」になっているレコードについては、参照は可能ですが更新することはできません。


したがって、先に読み込んだユーザの更新処理が完了して、「DBS_STATUS」の値が「1」 になるまで、他のユーザーは更新することはできなくなります。

同時に、同一のレコードを更新することはできませんが、10100.SQL実行で照会するレコードがダブらないように絞り込んでデータを照会すると、悲観ロックに引っかからないで、更新することができます。


【注意事項】

悲観ロックは、単一テーブルのみで利用可能です。

したがって、注意としては、クエリーには、JOINなどを含まないようにする必要があります。

※テクニカルリファレンス 第4章 同時実行制御機能(排他制御)についてを参照してください。

オンラインヘルプの改善にご協力ください。

このページは役に立ちましたか?