我有一个表测试,该表具有列ID,主键和自动递增的名称。我只想在没有记录的情况下插入新记录。
输入的ID为30122,名称为john
如果有ID为30122的记录,那么我将name列更新为john,如果没有记录,则我插入了一条新记录。
我可以使用2个查询
select * from test where id=30122
如果它有一些记录,那么我可以使用 update test set name='john' where id=3012
或者如果它没有记录,那么我可以使用
insert into test(name) values('john')
但是我想使用单个查询?
有人可以告诉它是否可能吗?
@AaronBertrand我的后端是使用java开发的。因此,如果我使用2条查询,那么我必须命中数据库2次。因此,如果可以使用单个查询完成,那么为什么要使用2条查询
—
SpringLearner 2015年
Java不支持存储过程,或者不支持具有两个语句的批处理,而这些语句只需要对数据库进行一次命中?
—
亚伦·伯特兰
@AaronBertrand您能举一个如何使用sql server 2008或更高版本处理此问题的示例吗?
—
eaglei22
But I wanted to use single query?
为什么?