mysql insert 存在即不插入语法说明
作者:954L 发布时间:2024-01-17 18:46:05
标签:mysql,insert,存在,不插入
insert 存在即不插入语法
介绍三种方式
第一种:replace into
replace into table(id, name) values(1, '张三') ;
/*或者*/
replace into table(id, name) select 1, '张三' ;
replace into 跟 insert 功能类似。
不同点在于:replace into 首先尝试插入数据到表中
1.如果发现表中已经有此行数据(根据主键或者唯一索引判断)则先删除此行数据,然后插入新的数据。
2.否则,直接插入新数据。
要注意的是:插入数据的表必须有主键或者是唯一索引!
否则的话,replace into 会直接插入数据,这将导致表中出现重复的数据。
第二种:DUAL临时表
insert into table(id, name)
select null, '张三' from DUAL
where not exists (select id from table where name = '张三') ;
其中的 DUAL 是一个临时表,不需要物理创建,直接用即可。
这种就不需要上述那种必须主键相同或者有唯一索引的字段。
第三种:根据主键判断
insert into table(id, name) on duplicate key update name = '李四';
根据主键id进行判重。
效果区别
第一种:不存在即插入,存在即修改
第二种:不存在即插入,存在则不做处理
第三种:不存在不做处理,存在即执行update
已有数据存在则不插入,否则则修改
经常遇到这样的情景,向一个表里插入一条数据,如果已经存在就更新一下,用程序实现麻烦而且在并发的时候可能会有问题,这时用mysql的DUPLICATE KEY 很方便
用法
INSERT INTO agent_user (group_id,group_type,user_name, user_mobile,created_time,updated_time)
SELECT 9503,8,a.user_name,a.user_mobile,1642397508000,1642397508000
from agent_user_heimingdan a on DUPLICATE KEY UPDATE user_mobile = a.user_mobile;
来源:https://blog.csdn.net/wkh___/article/details/82856801


猜你喜欢
- 原理:print() 函数会把内容放到内存中, 内存中的内容并不一定能够及时刷新显示到屏幕中(应该是要满足某个条件,这个条件现在还不清楚)。
- 前言:工作中遇到以下小问题,解决方法如下,可能比较暴力,暂时留档,再进行优化。要求:将列表中json的 ‘id&
- 本文主要介绍了np.where()[0] 和 np.where()[1]的具体使用,以及np.where()的具体用法,废话不多说,具体如下
- 无水印视频下载方法一:无水印视频下载很简单,有一个通用的方法,就是使用去水印平台即可。我使用的去水印平台是:http://douyin.ii
- 占位符,顾名思义就是插在输出里站位的符号。占位符是绝大部分编程语言都存在的语法, 而且大部分都是相通的, 它是一种非常常用的字符串格式化的方
- 发布Python包上一篇介绍了如何使用别人的轮子,现在我们讨论下如何自己造轮子给别人用。作为一个流行的开源开发项目,Python拥有一个活跃
- 你是否曾经想在数据库中存储一个日期而没有时间部分,或者想存储一个时间值希望有更高的精度?在SQL Server 2008的介绍中,微软介绍了
- 示例下面是一个简单的Python爬虫Scrapy框架代码示例,该代码可以抓取百度搜索结果页面中指定关键字的链接和标题等信息:import s
- 本文实例讲述了PHP5.6读写excel表格文件操作。分享给大家供大家参考,具体如下:测试环境:php5.6.24.这块没啥兼容问题。需要更
- Go 语言相比Java等一个很大的优势就是可以方便地编写并发程序。Go 语言内置了 goroutine 机制,使用goroutine可以快速
- 本文介绍了网页运行代码框(runCode), 复制代码框(copyCode), 保存代码框(saveCode),的实现方法。javascri
- 首先要兼容IE\FF滴然后有一个环境与条件:必须是使用em单位布局。因为这个是利用字号做缩放效果,并且兼容fontSize各项单位,例如px
- 注:转载就注入出自'孤孤浪子博客'原创 http://itpro.blog.163.com 第一步 http://itpro
- 一、数据库操作1.1 安装PyMySQLpip install PyMySQL1.2 连接数据库python连接test数据库import
- 1.SQL Server对于SQL Server 2000来说,它提供了两个全新的函数(IDENT_CURRENT,SCOPE_IDENTI
- 1.自定义聚合函数,结合agg使用2. 同时使用多个聚合函数3. 指定某一列使用某些聚合函数4.merge与transform使用impor
- 邮件自动化篇章所需的新模块:smtplib 邮件协议与发送模块email 内容定义模块schedule 定时模块smtplib 与 emai
- 有时在处理文件时候,我们需要将中文姓名转换为拼音,或者是转换为拼音首字母,本文将介绍三种Python实现的方法,最后给一个批量操作的代码案例
- 本文实例讲述了Python实现的端口扫描功能。分享给大家供大家参考,具体如下:一 代码import sysimport socketimpo
- 我就废话不多说了,大家还是直接看代码吧~In [1]: import osIn [2]: os.environ["CUDA_VIS