次のLOCKING句を使用して、employeeテーブルが変更されている間に、そのテーブルからデータを選択することができます。
LOCKING TABLE personnel.employee FOR ACCESS SELECT name, salary FROM employee WHERE salary < 25000 ;
問合わせの結果は以下のようになります。
- WRITEロックを獲得した別のユーザーによって開始された並行操作により、後の実行ではそのデータが変更されたり削除される可能性がある行を返します。
- 並行した挿入操作が行なわれている行を抜かします。
- 基本テーブルに永久に挿入されなかった行を挿入します。これは、新しい行を挿入するトランザクションがアボートされ、新しい行がバックアウトされたためです。