我并不乐观,这可以在没有存储过程的情况下完成,但我很好奇以下是否可能。
我想编写一个查询插入/更新,如果它找到匹配项,则更新一行,如果没有,则将其更新的值插入到表中。
所以......像
updateInsert into table_a set n = 'foo' where p='bar';
如果没有 p='bar' 的行,它将自动插入 table_a set n = 'foo';
编辑:基于几条评论,我看到我需要澄清 n 不是 PRIMARY KEY 并且表实际上需要有重复行的自由。我只是有一个特定条目需要唯一的情况......也许我只是在以一种不好的方式混合隐喻,应该把它拉到一个单独的表中,这个键是唯一的。