详情页

INSERT 表名(字段) VALUES(字段值) ON DUPLICATE KEY UPDATE 条件语句实例

时间:2024年03月30日

编辑:佚名

INSERT...ON DUPLICATE KEY UPDATE...语句
首先这个的出现一般伴随着UPDATE 语句。我们先来想这样一种场景,我要对数据库中的一条记录,进行新增或者修改,但是呢又不想自己去判断里面是否有,说白了 就是两次查询。
//查今天,这个租户下没有的话插入,有的话+1
StaticActionInfo staticActionInfo = staticActionInfoDao.findStaticActionInfoB
if(staticActionInfo == null){
staticActionInfo model = new StaticActionInfo();
model.setApplication_uri(uri);
model.setAction_number(1L);
model.setTenant_id(tenantId);
model.setPerson_name(tokenService.getLoginUserName());
model.setPerson_id(tokenService.getLoginUserId());
model.setCreate_time(new Date() );
model.setUpdate_time(new Date() );
staticActionInfoDao.saveActionInfo(model);
}else {
staticActionInfo.setAction_number(staticActionInfo.getAction_number() +1);
staticActionInfo.setUpdate_time(new Date() );
staticActionInfoDao.updateActionInfoCountByOption(staticActionInfo);
}

通过一行sql搞定。
INSERT INTO t_user(id,name,age) VALUES (1,'张三',25) 
ON DUPLICATE KEY UPDATE name='张小三',age=30;
代码层面的东西其实没有能省略,两个sql合为了一个而且update的具体操作必须在数据库里完成,比如这里的+1。
相关文章
猜你需要