on conflict do update
使用ON CONFLICT DO UPDATE语法的主要优点是可以使SQL语句更加简洁和高效。相比于传统的INSERT和UPDATE两个步骤执行,使用ON CONFLICT DO UPDATE可以将这两个步骤合并为一个数据库操作,从而减少了通信和锁定的开销,提高了插入数据的性能。此外,使用ON CONFLICT DO UPDATE也可以更好地处理并发插入和更新操作,避免了数据冲突和错误。
然而,使用ON CONFLICT DO UPDATE也存在一些潜在的缺点和限制。例如,它只能处理唯一性约束或唯一索引上的冲突,因此不能应用于其他类型的冲突,例如CHECK约束或外键约束。此外,ON CONFLICT DO UPDATE也可能会引入一些复杂性,特别是针对涉及多个列的行和需要执行更复杂逻辑的更新操作的情况。
因此,在使用ON CONFLICT DO UPDATE之前,需要仔细考虑其适用性,并根据具体情况选择最佳方法来保障数据完整性和正确性。
MySQL 8.0及以上版本支持使用ON CONFLICT DO UPDATE语法来处理主键或唯一键冲突时更新现有行的数据
以下是一个示例MySQL:
假设您有一个名为customers的表格,其中包含id和name两个列,id是主键。您可以使用以下语句将数据插入到表格中:
INSERT INTO customers (id, name) VALUES (1, 'John')
ON DUPLICATE KEY UPDATE name='Smith';
如果id为1的行不存在,则将插入新行,name为'John'。如果已存在具有id 1的行,则将该行的名称更新为'Smith'。
PostgreSQL 9.5及以上版本支持ON CONFLICT DO UPDATE语法。 在PostgreSQL中,这个语句通常使用在INSERT INTO语句中,用于在插入新行时,如果遇到重复的键值,则执行UPDATE操作。下面是一个示例:
INSERT INTO table (column1, column2) VALUES ('value1', 'value2')
ON CONFLICT (unique_column) DO UPDATE SET column1 = value3, column2 = value4;
on conflict do update相关推荐
- Postgresql on conflict do update 设置当前值,原始值,当前值与原始值相加值
Postgresql插入时主键冲突会报错,可采取冲突不做任何处理或者进行更新--俩种方式避免报错:更新时可以保存新值,保存新值与旧值表达式. 更新时可以保存原来的值,ON CONFLICT(date, ...
- PG数据库内核源码分析——UPDATE
PG中UPDATE源码分析 本文主要描述SQL中UPDATE语句的源码分析,代码为PG13.3版本. 整体流程分析 以 update dtea set id = 1;这条最简单的Update语句进行源 ...
- Python: SQLAlchemy 处理 PostgreSQL on conflict
目录 一.数据模型定义 二.ON CONFLICT DO NOTHING - 忽略本条数据的插入 三.ON CONFLICT DO UPDATE - 更新旧数据 一.数据模型定义 models.py ...
- git github 快速入门
本节内容 github介绍 安装 仓库创建& 提交代码 代码回滚 工作区和暂存区 撤销修改 删除操作 远程仓库 分支管理 多人协作 github使用 忽略特殊文件.gitignore 为什么要 ...
- (流式、lambda、触发器)实时处理大比拼 - 物联网(IoT)\金融,时序处理最佳实践
标签 PostgreSQL , 物联网 , 传感器 , lambda , 调度 , 实时 , 流式更新 , UPSERT , insert on conflict do update 背景 越来越多的 ...
- 怎样不停请求接口实现实时刷新_Hologres+Flink实时数仓详解
简介: 本次内容将会介绍使用Flink和Hologres,实现可扩展的.高效的.云原生实时数仓. 一.Hologres生态 从前面几篇的内容,相信大家已经了解到Hologres是一款兼容Postgre ...
- [开源] .Net ORM FreeSql 1.10.0 稳步向前
写在开头 FreeSql 是 .NET 开源生态下的 ORM 轮子,转眼快两年了,说真的开源不容易(只有经历过才明白).今天带点干货和湿货给大家,先说下湿货. 认识我的人,知道 CSRedisCore ...
- [开源] .Net orm FreeSql 1.5.0 最新版本(番号:好久不见)
废话开头 这篇文章是我有史以来编辑最长时间的,历时 4小时!!!原本我可以利用这 4小时编写一堆胶水代码,真心希望善良的您点个赞,谢谢了!! 很久很久没有写文章了,上一次还是在元旦发布 1.0 版本的 ...
- Android官方开发文档Training系列课程中文版:连接无线设备之网络服务搜索功能
原文地址:http://android.xsoftlab.net/training/connect-devices-wirelessly/index.html 引言 Android设备除了可以与服务器 ...
最新文章
- python计算相关系数
- freeswitch模块之event_socket
- php 批量转换文档编码格式_据说是国内最好的文档格式转换网址~PDF,PPT,EXCEL,WORD互相转换...
- c语言数组左下角便*,数据结构 - 数组
- Stanford公开课《编译原理》学习笔记(2)递归下降法
- 文件系统VFS数据结构(超级块 inode dentry file)(收集整理)
- MySQL二进制日志(binlog)总结
- 波轮全自动洗衣机分解与典型部件拆装技巧
- 计算机基础知识测试1,计算机基础知识测试试题及答案(网络)1
- 无法远程连接到计算机 虚拟内存,远程桌面连接显示内存不足怎么破?
- 【雷达仿真 | FMCW TDMA-MIMO毫米波雷达信号处理仿真(可修改为DDMA-MIMO)】
- 安卓手机屏幕投射电脑 手机投屏到win7
- html css语义化
- Centos7(Linux)下安装Oracle11g
- 汉字转拼音函数 linux,汉字转拼音占内存更少转换速度更快的程序
- mysql统计数学课的及格人数_mysql case when 案例:统计各科成绩各分数段人数所占百分比...
- Linux----软件安装及程序管理
- 外刊01 How is COVID-19 affecting our mental health?
- IntelliJ IDEA安装使用教程 亲测2019.2.4版本可行
- CCIE与HCIE哪个含金量高些?