PostgreSQL的upsert功能(on conflict do)的用法
ON CONFLICT 只在 PostgreSQL 9.5 以上可用
PostgreSQL 的 upsert 功能就是当执行 INSERT 操作时,如果数据表中不存在对应的记录,PostgreSQL 执行插入操作;如果数据表中存在对应的记录,则执行更新操作。这就是为什么将其称为 upsert(update or insert)的原因。
<update id="updatePersonInfo" paramterType="com.test.pojo.Person">insert into person(name,age,hobby,city,school,mobile)values(#{name},#{age},#{hobby},#{city},#{school},#{mobile})on conflict(mobile,name) do nothing</update>
这里的on conflict( )括号里面必须是唯一索引,所以此处的mobile和name必须是联合唯一索引 do nothing 则表示如果有相同数据存在,则不做任何操作,原数据保持不变
<update id="updatePersonInfo" paramterType="com.test.pojo.Person">insert into person(name,age,hobby,city,school,mobile)values(#{name},#{age},#{hobby},#{city},#{school},#{mobile})on conflict(mobile,name)do updateset city='上海',school='复旦'
</update>
这里的on conflict 后面的do update 则表示如果存在以 mobile和name为唯一索引的重复数据,则做更新操作 city='上海',school='复旦'
<update id="updatePersonInfo" paramterType="com.test.pojo.Person">insert into person(name,age,hobby,city,school,mobile)values(#{name},#{age},#{hobby},#{city},#{school},#{mobile})on conflict(mobile,name)do updateset city='上海',school='复旦'whereperson.name='章程'
</update>
这里的update则有限制条件where person.name='章程'
PostgreSQL的upsert功能(on conflict do)的用法相关推荐
- 【PostgreSQL】PostgreSQL的upsert功能(insert on conflict do)的用法
PostgreSQL 的 upsert介绍及语法 PostgreSQL 的 upsert 功能:当记录不存在时,执行插入:否则,进行更新. 注意: ON CONFLICT只在 PostgreSQL 9 ...
- mysql upsert语法_Mysql - Upsert功能实现
在看到了mongoTemplate的操作之后,觉得这种东西是很符合我们程序员世界的操作的,但是看到mysql的jdbc之后,瞬间一百万个小泥马从头飘过,所以就想自己实现一个mysql版本的upsert ...
- 数据库:PostgreSQL:基础功能使用介绍
作为传统开源数据库的坚定支持者,PostgreSQL在数据库领域中一直有不错的名声,在TOP DB index指数中也基本上是在第五的位置.由于考虑到Oracle.MySQL和SQL Server常年 ...
- PostgreSQL SQL中的ALL,ANY,SOME的用法,sql查询速度优化,sql运行优化
PostgreSQL SQL中的ALL,ANY,SOME的用法,sql查询速度优化,sql运行优化 准备两个表: --T1(2,3) --T2(1,2,3,4)--ALL,ANY,SOME 的子查询 ...
- Postgres访问其他PostgresQL数据库的功能DBLINK
2019独角兽企业重金招聘Python工程师标准>>> 有时候的业务需要参照其他数据库的数据. 我们可以在程序中分别从两个数据库中取值然后处理.但这样开发效率和性能都不是很好. 如果 ...
- PostgreSQL的 array_to_string 功能
开始 用 第二个参数连接数组元素,例: postgres=# select array_to_string (ARRAY[1,2,3],'##');array_to_string ---------- ...
- oracle数据库instr用法,postgresql instr函数功能实现(实现oracle plsql instr相同功能)
-- 实现1 CREATE FUNCTION instr(varchar, varchar) RETURNS integer AS $$ DECLARE pos integer; BEGIN pos ...
- PostgreSQL 数据库中 DISTINCT 关键字的 4 种用法
文章目录 DISTINCT DISTINCT ON IS DISTINCT FROM 聚合函数与 DISTINCT 大家好,我是只谈技术不剪发的 Tony 老师.PostgreSQL 不但高度兼容 S ...
- linux进程snprintf函数功能,linux 之 snprintf函数用法
int snprintf(char *restrict buf, size_t n, const char * restrict format, ...); 函数说明:最多从源串中拷贝n-1个字符到 ...
最新文章
- Docker周报:Windows Server将支持Mesos
- 遏制企业数据泄露之殇,大咖切磋云安全的攻防之道
- mybatis 动态 SQL 官方文档
- Eclipse启动之一:外壳程序(百度空间迁移)
- ElasticSearch入门教程--安装
- Linux下SSH Session复制
- cocoapods 详尽使用
- C#解析JSON字符串总结(转载)
- 亲自体验了vscode网页版开发代码并提交代码到github代码库,发现出奇的流畅,手机和平板也可以很愉快的编写代码了
- SDUT 第十届校赛H menhera酱那惨不忍睹的数学 (二分图匹配)
- linux命令sm,Linux系统命令和使用技巧8则
- CNN Explainer
- 南宁计算机职称考试网,南宁人事考试职称网
- 【Android之SmartImageView图片控件】
- 郑州大学计算机系1996级校友,公共管理学院成功举办96级公共关系专业学生毕业20周年返校活动...
- 思维导图 · B端业务的难点
- IBM推出量子AI平台IBM z16
- 几种等等概率抽样方法
- 12个摄影发烧友必知的常识
- JDK7.0下载地址
热门文章
- git上传很多文件报错解决
- Jenkins里的Crumb
- mv单位是什么意思_ayawawa经常说的pu MV是什么意思 怎么mv是什么意思算
- TSINGSEE青犀视频云-边-端架构视频智能分析平台EasyNVR如何实现直播地址和录像地址统一
- terraform 腾讯云_使用Terraform优化云成本的权威指南
- https://ipcrs.pbccrc.org.cn/
- 英文文献翻译(白嫖版)
- 微信小程序 常用组件
- 多IP服务器怎么样?多IP服务器有什么优势?
- 常见的设计模式和应用场景