1

多くのオプティミスティック コンカレンシーの例では、データベースのタイムスタンプまたはフラグを使用して更新を参照しています。

ただし、INSERTS のオプティミスティック コンカレンシーを処理したい

ここで説明するのは、偽のシナリオです。

複数のユーザーが同時に仕訳入力を挿入できますが、日付ごとに許可される仕訳入力は 1 つだけです。

複数のユーザーが日誌エントリを作成できるため、同時実行制御がないと、同じ日に複数の日誌エントリが作成される可能性があります。

データベースを使用せずにアプリケーション層でこれが発生しないようにするにはどうすればよいですか (つまり、データベースの一意のキー制約)。

4

2 に答える 2

4

明示的な一意のキー制約を定義するかどうかにかかわらず、それはまさにあなたが求めているものです。

SQL コードに IF ブロックを記述して、指定した日付のジャーナル エントリの存在を確認できます。

ただし、明示的なユニーク キー制約を使用すると、パフォーマンスが向上します。

于 2008-10-14T18:09:51.527 に答える
0

「挿入時」トリガーを記述してテーブルの内容をチェックし、基準が満たされない場合は挿入を破棄できます。これは、ほとんどの RDBMS で使用できます。

于 2008-10-14T18:09:21.683 に答える