当前位置: 首页 > news >正文

mysql 插入更新数据

insert into

insert into 语句进行插入时,如果插入的字段包含 主键或者唯一索引字段,那么,

1)主键或唯一索引 已存在,则插入失败 1062 - Duplicate entry '1' for key 'PRIMARY'

2)只有主键或者唯一索 引不存在时,才能插入成功

存在则抛异常,不存在则插入成功

insert  ignore  into

insert  gnore  into 语句进行插入时, 如果插入的字段包含 主键或者唯一索引字段,那么,

1)主键或唯一索引 已存在,则不插入,返回 Affected rows: 0,不会报错

2)只有主键或者唯一索 引不存在时,会插入成功

存在则忽略,不存在则插入成功

replace into

 replace  into 语句进行插入时, 如果插入的字段包含 主键或者唯一索引字段,那么,

1)主键或唯一索引 已存在,则删除已存在的记录,插入新的记录,Affected rows: 2

2)主键或唯一索引 不存在,则直接插入

存在则删除后插入,不存在则直接插入

insert into  on duplicate key update column1=value1,column2=value2

当前插入方式:

1)如果主键或者唯一索引已存在:

        a:  如果已存在的记录中的 字段 和  后面的 update 字段 值相同,则不更新,影响行数:0

        b: 如果已存在的记录中的 字段 和  后面的 update 字段 值 不 相同,则删除已有记录,重新插入新的记录,新的记录中,使用 update 字段的值,影响行数:2

2)如果主键或者唯一索引不存在,则直接插入行,影响行数:1

存在 并且 不需要更新,则忽略;存在 并且需要更新,则删除记录并根据新值插入;不存在则直接插入

需要根据具体的业务场景来选择,一般都是 先 select,如果存在,则通过 upate 来更新指定字段,很少 利用 replace into 或者 insert into on duplicate key update 来操作,如果是唯一索引字段已存在,那么这两种都是会删除原来的行 再插入新的行,如果表的主键id 是增的话,岂不是 就变了。 

http://www.lryc.cn/news/163637.html

相关文章:

  • 系统架构设计高级技能 · 软件产品线
  • C语言学习系列-->字符函数和字符串函数
  • 尖端AR技术如何在美国革新外科手术实践?
  • 【木板】Python实现-附ChatGPT解析
  • 第一章:绪论
  • C++面试知识点总结
  • 从智能手机到智能机器人:小米品牌的高端化之路
  • 深度学习推荐系统(八)AFM模型及其在Criteo数据集上的应用
  • 【Spring】aop的底层原理
  • 微信小程序开发---基本组件的使用
  • SpringBoot国际化配置组件支持本地配置和数据库配置
  • Shell编程之sort
  • windows docker 容器启动报错:Ports are not available
  • 300. 最长递增子序列
  • DNS(域名解析系统)
  • 解决jsp/html界面跳转servlet出现404错误的方法
  • catface,使用Interface定义Controller,实现基于Http协议的RPC调用
  • Linux:LVS (NAT群集搭建)
  • 音乐格式转换mp3怎么转?跟着步骤操作一遍
  • it监控系统可以电脑吗?有什么效果
  • jvs-智能bi(自助式数据分析)9.1更新内容
  • MyBatis-Plus-扩展操作(3)
  • react 中 antd 的 样式和 tailwind 样式冲突
  • 获取该虚拟机的所有权失败,主机上的某个应用程序正在使用该虚拟机
  • 2024届校招-Java开发笔试题-S4卷
  • 数据分析面试题(2023.09.08)
  • jenkins 报错fatal:could not read Username for ‘XXX‘:No such device or address
  • LRU算法之我见
  • 【第20例】华为 IPD 体系 | IPD 的底层思考逻辑(限制版)
  • spaCy库的实体链接踩坑,以及spaCy-entity-linker的knowledge_base下载问题