2017-10-12 4 views
0

レコードを作成するには、テーブルに2種類の列があるロジックを用意する必要があります。非キーフィールドを比較して更新レコードを検出する

  • 非キーフィールドです一意のレコードがキーフィールド
  • を意味識別つ

キーフィールドが変更されている場合は、私が追加/削除演算子を持つレコードを更新する必要があります。非キーフィールドが更新されている場合は、Change演算子を使用する必要があります。

コンパイラを使用してキーフィールドの変更を検出し、追加/削除演算子を使用できるオブジェクトのリストのレコードを取得します。

コンパレータロジックは、古いレコードのオペレータを削除し、新しいレコードを追加する変更が追加された場合、古いキーフィールドを& &と比較します。これはまっすぐです。

しかし、変更演算子は、どのフィールドが更新されているかを知る最善の方法でしょうか?したがって、「変更」が追加されます。コンパレータを使って何かが変更されているかどうかを検証できますが、コンパレータなどを使って知る方法が変わったのですか?下記のレコードIDの例として

、オープン日とステータスが他の部分と非キーフィールド

ID、オープン日、クローズ日、ステータス、エスト定休日

あるキーフィールドがあります

私は非キー比較の完全なレコードを比較することができますが、何か変更されたかどうかはわかりません。なぜなら、既存のレコードを削除/追加ではなく更新演算子で更新する必要があるからです。

まず、コンパレータチェックの追加/削除を実行してから、キー以外のフィールドの変更を検証します。私は自分の質問に答えたと思いますが、まずキーフィールドの比較を行い、キーフィールドの組み合わせの更新に基づいてレコードを追加/削除してから、同じレコードを作成します変更が検出された場合、更新演算子が追加され、挿入/削除は生成されません。正確な非キーフィールドが変更されたかどうかを検出する必要はありません。

ありがとうございました。

+0

オブジェクトの変更を検出しようとしていますか、または重複を保存していて、コンパレータを使って比較していますか?また、あなたのコードのいくつかを含めることができます – jrtapsell

+0

私は比較しようとしていると、前のレコード対新しいレコードの変更を検出しようとしています。私は答えを得ると思う。検討して読んでくれてありがとう。 –

答えて

0

私は自分の質問に答えたと思います。まず、レコードのキーフィールドの比較を行います。変更が検出された場合は更新演算子が追加され、挿入/削除は生成されません。正確な非キーフィールドが変更されたかどうかを検出する必要はありません。

ご質問ありがとうございます。

関連する問題