1
現在、csvファイルのデータをデータベースのテーブルにロードし、新しいエントリを挿入して古いエントリを更新しようとしています。このテーブルには、フィールド1(field1、field2、field3、field4、field5)とプライマリキーとしてのカラムがあり、csvにはカラム(field1、field2、field3)のみの値があります。これに接近する最善の方法は何でしょうか? は現在、私は次のようにそれに近づいて考えていた:tmpデータベースのテーブルから別のデータベースのテーブルに挿入して更新する
- tmpにテーブルを作成し、のようなクエリで古いエントリを更新
「LOAD DATAを」を使用してtmp_tableでtmp_table
- ロードのcsvを言います
UPDATE db.table1 t INNER JOIN tmp.tmp_table s ON (t.field1=s.field1) SET t.field1 = s.field1, t.field2 = s.field2, t.field3 = s.field3
を挿入し、新しいエントリ
INSERT INTO db.table1(field1, field2, field3) SELECT t.field1, t.field2, t.field3 FROM tmp.tmp_table t LEFT JOIN db.table1 v ON (t.field1=v.field1) WHERE v.field1=NULL
ステップの改善/最適化/修正に関するコメントはありますか?