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