如何基于2个密钥创建JDBC upsert查询

时间:2016-03-06 08:13:55

标签: java sql jdbc upsert

我想基于2列预先形成upsert(更新或创建): 如果表A和列B在表中存在,则更新值,否则使用此键创建一个新行。

//pasdo code for my query
if(table.key1 == firstKey && table.key2 == secKey){
 //update values for the row with key1, key2
} else {
//create a row with firstKey, secKey as keys
}

我在后端有一个oracle sql server。

1 个答案:

答案 0 :(得分:1)

你可以做类似这样的事...... 在oracle中,dual就像虚拟表。它没有任何行..它有助于创建合并查询所需的临时表 以下可能不是确切的SQL语法..

merge into table m using (select firstKey,secKey from dual d) on 
(m.key1 = d.firstKey and m.key2 = d.secKey )
         when not matched then insert... -- put insert statement here
             when matched then update .. -- put statemenet here