少し考えた後、これを完全に再編集しました。本来は別の MERGE ステートメントと結合することを望んでいましたが、それを忘れてください。明確にするために、これはアップサートではありません。既存の一致するレコードが見つからない場合、新しいレコードを追加したい。
mytable
列foo
、bar
、 を保持しているとしましょうbaz
。Where (パフォーマンスに関連する場合)foo
とbar
一緒にレコードを一意に識別します。
a) そうでない場合はfoo
、, ,bar
を挿入します。foo
bar
baz
b) それ以外の場合foo
、 and bar
butbaz<new>
が等しくない場合は、, をbaz<old>
挿入します。foo
bar
baz<new>
c) 3 つすべてが一致する場合は、何もしません。
b
同様に、更新ではなく新しいレコードであることに注意してください。基本的に、これは への変更を記録するログbaz
です。
追加のボーナスとして、マージをmy_second_table
試みるだけの MERGE ステートメント ( to ) を取得できれば素晴らしいと思います。ケースの意味は変更されないため、他のテーブルに触れる必要はありません。しかし、私はあなたがすべてを持つことができないことを知っています.a
b
c
baz
Mongo のように JavaScript を使えないのはなぜですか?