经过一番思考,完全重新编辑了这个。最初我希望与单独的 MERGE 语句结合使用,但忘记了。需要明确的是,这不是一个更新。如果找不到现有的匹配记录,我想添加一条新记录。
假设mytable
拥有列foo
, bar
, baz
。在哪里(如果出于性能考虑)foo
和bar
一起唯一标识记录。
a) 如果不是foo
,bar
则插入foo
, bar
,baz
b) 否则,如果foo
且不等于insert , ,bar
baz<new>
baz<old>
foo
bar
baz<new>
c)否则,如果所有三个都匹配,则什么也不做
请注意,这b
同样是一条新记录,而不是更新。本质上这是一个记录更改的日志baz
。
作为一个额外的好处,如果我可以让 MERGE 语句 (to my_second_table
) 只尝试合并,那将是很棒的a
,b
因为大小写的c
意思baz
没有改变,因此我们不需要接触另一个表。但我知道你不可能拥有一切。
为什么他们不能像 Mongo 那样使用 JavaScript...?