0

シナリオ

ファイル(フラットファイル)に従業員オブジェクトがあり、各行は1つの従業員レコードを表します

データベーステーブルの従業員に従業員オブジェクトがあります

ファイル内のレコードをテーブルに同期したい 従業員がテーブルにないレコードを
挿入し、そこにあるレコードを更新し
ますが、一部のフィールドが更新され
、ファイルにはないがテーブルに存在するレコードを削除します

1つの簡単な解決策(これが正しいかどうかはわかりません)私が考えることができる
のは、Dababaseテーブルからすべてのレコードを削除し、ファイル内のすべてのレコードをテーブルに挿入することです

しかし、すでに存在するものを更新したいのですが、1 つ以上のフィールドが変更されています

注: employee_id は、レコードを識別するための一意/主キーであり、ファイルまたはテーブルに重複するレコードはありません

4

1 に答える 1

0

従業員テーブルと同じ列を持つ一時テーブルを作成できます。最初にファイルから一時テーブルにデータをロードし、次に純粋な SQL 操作です。たとえば、ファイルにないものを削除します

Delete from employee where employee_id not in (select employee_id from employee_tmp);

それらをファイルに挿入しますが、テーブルには挿入しません

insert into employee select * from employee_tmp where empoyee_id not in (select employee_id from employee)
于 2013-07-18T09:51:16.017 に答える