有的时候会接到这样的需求:如果数据库中有这条数据就修改,如果没有就修改。
在之前接到这个需求,首先思路是:先到数据查询有没有这条数据,有的话就走修改,没有的话就走新增。
之后找到了这种解决方案:贴出来分享一下,这些语句都是在mybaits下使用的
oracle:
merge into table p
using (select '${column}' columnfrom dual) d
on (d.column= p.column)
when matched then update 语句
when not matched then insert 语句
mysql:
insert into emailverify (1, 2) values (#{1},#{2}) on duplicate key update 2= #{2}
意思就是,根据唯一标识字段查询数据库是否有这条数据,如果匹配的话就做更新操作,如果不匹配的话就做新增操作。