テーブルのデータ更新時に排他制御を行う¶
テーブルから取得したデータを更新するとき、他のユーザーが同じデータを更新している場合があります。
この場合、他のユーザーが更新したデータを意図せず上書きすることになってしまいます。
このようなことが起きないように、同じデータを複数ユーザーが同時に変更できないようにする仕組みを排他制御といいます。
ここでは、CELF において排他制御を行う方法を説明します。
テーブルのデータ更新時に排他制御を行う¶
- 「アクションセット設定」ダイアログを開きます。
- 「テーブルのデータを更新する」、または、「テーブルのデータを削除する」のアクションにて、「他のユーザーが更新または削除していた場合はエラーとする」をチェックします。
![]()
ちなみに
CELFの排他制御は、あらかじめ更新対象となる行の「ID」と「LAST_MODIFIED」を取得(シート上に出力)し、
更新実行時にその「ID」を持つ行の「LAST_MODIFIED」を比較することで、当該行が他ユーザーによって更新されたかどうかを判断する仕組みです。
「他のユーザーが更新または削除していた場合はエラーとする」をチェックした場合、更新・削除条件として対象データの「ID」を指定する必要があるため、
1件毎の更新・削除となります。(同時に複数件のデータ更新、または、削除を行うことはできません。)
「ID」、「LAST_MODIFIED」については、テーブルを作成する を参照してください。
- 更新チェック項目と、更新条件を指定します。
![]()
- [1] 更新チェック項目
シート内の更新・削除データにおける「LAST_MODIFIED」の値を指定します。指定した値と、データベースの更新・削除対象データの値が異なる場合、エラーとなります。あらかじめ「LAST_MODIFIED」の値を取得しておき、シート内に保持しておく必要があります。- [2] 更新条件
更新・削除データを識別するため、シート内の更新・削除データにおける「ID」の値を指定します。あらかじめ「ID」の値を取得しておき、シート内に保持しておく必要があります。参考
更新チェック項目の値が変更されていた場合はエラーとなるため、エラーの制御を行う必要があります。エラーの制御方法については、エラーをハンドリングする を参照してください。
- アクションセットを保存します。
参考
※動画内の画面は最新バージョンの CELF とは異なる場合があります。
※動画に音声はついていません。
重要
テーブルのデータを更新するためには、ユーザーに以下の権限が必要です。
- アプリ作成者
また、アプリ作成者についてはテーブルに対する以下の権限が必要です。
- 編集

関連キーワード¶
楽観、ロック