做业务系统,经常遇到初始化一些数据,但如果每次都检查就比较麻烦,下面的方法可以解决类似的问题。

1. ON DUPLICATE

使用ON DUPLICATE插入的字段中必须有唯一约束,否则会出现重复值

INSERT INTO table   (name, gender, age) VALUES   ('Jerry', 'boy', 9) ON DUPLICATE KEY UPDATE name='Jerry',gender='girl', age=10;

目前表中没有唯一约束,执行两遍插入语句,会出现两个重复数据,id为49的Jerry和id为50的Jerry,并没有达到修改的目的,将name字段增加唯一约束

ALTER TABLE `table` ADD unique(`name`);

表中已经存在名为Jerry的数据,再次插入时更新为 Jerry,girl, 10

2. REPLACE

replace into 跟 insert 功能类似,不同点在于:replace into 首先尝试插入数据到表中, 1. 如果发现表中已经有此行数据(根据主键或者唯一索引判断)则先删除此行数据,然后插入新的数据。 2. 否则,直接插入新数据。

要注意的是:插入数据的表必须有主键或者是唯一索引!否则的话,replace into 会直接插入数据,这将导致表中出现重复的数据。

REPLACE INTO table(name, gender, age)  VALUES ('Jerry', 'girl', 10);或REPLACE INTO table(name, gender, age)  SELECT 'Jerry', 'girl', 10;或REPLACE INTO test SET name='Jerry', gender='girl', age=10;

文章来源:https://www.jianshu.com/p/ebf115bea1bf

不存在_MySQL数据存在就更新,不存在就添加相关推荐

  1. mysql 触发器判断不插入数据_mysql关于触发器怎么判断数据存在时更新不存在时添加呢!...

    展开全部 如果是要完成     存在则 更新,   不存在 则插入的操作. 直接使用   replace into   语句就可以了636f707962616964757a686964616f3133 ...

  2. delete语句与reference约束冲突怎么解决_mysql update语句和原数据一样会更新么

     戳蓝字「TopCoder」关注我们哦! 平常使用 mysql ,必不可少的会用到 update 语句,不知道小伙伴有没有这样的疑问? 如果 update 语句和原数据一样会更新么?更具体的来说,如果 ...

  3. mysql c 更新 数据_Mysql:如果数据存在则更新,不存在则插入

    本篇文章转载自:https://www.cnblogs.com/Eric-zhao/p/6655994.html mysql语法支持如果数据存在则更新,不存在则插入,首先判断数据存在还是不存在的那个字 ...

  4. mysql数据存在就更新_Mysql:如果数据存在则更新,不存在则插入

    mysql语法支持如果数据存在则更新,不存在则插入,首先判断数据存在还是不存在的那个字段要设置成unique索引, 例如表tb_addrbook如下: 索引: 语句1:不存在插入 INSERT INT ...

  5. pb 修改数据窗口种指定字段位置_如何在PB数据窗口中修改数据---设置数据窗口的更新属性...

    如何在 PB 数据窗口中修改数据 --- 设置数据窗口的更新属性 数据窗口对象非常强大的原因之一就是能够很容易地修改数据库.当用户修 改了数据窗口中的数据,插入了新的数据行或者删除了数据行以后,只要调 ...

  6. MERGE INTO 解决大数据量 10w 更新缓慢的问题

    MERGE INTO 解决大数据量 10w 更新缓慢的问题 参考文章: (1)MERGE INTO 解决大数据量 10w 更新缓慢的问题 (2)https://www.cnblogs.com/yun9 ...

  7. access 更新整列数据_在access中同一列的多个数据一次更新

    在access中同一列的多个数据一次更新 来源:互联网  宽屏版  评论 2012-03-17 16:50:44 分类: 电脑/网络 >> 程序设计 >> 其他编程语言 问题描 ...

  8. 数据库存在即更新的并发处理 - 转

    前言 本节我们来讲讲并发中最常见的情况存在即更新,在并发中若未存在行记录则插入,此时未处理好极容易出现插入重复键情况,本文我们来介绍对并发中存在就更新行记录的七种方案并且我们来综合分析最合适的解决方案 ...

  9. 09Oracle Database 数据表数据插入,更新,删除

    Oracle Database 数据表数据插入,更新,删除 插入数据 Insert into table_name(column) values(values); insert into studen ...

最新文章

  1. PLUS | 包含蛋白质特异性的新型预训练方案
  2. 微软(MICROSOFT)试用版企业软件下载地址
  3. 2021年春季学期-信号与系统-第八次作业参考答案-第三小题
  4. Storm 1.1.0 集群安装
  5. Node — 第七天 (大事件项目接口实现一)
  6. LeetCode 80. 删除排序数组中的重复项 II
  7. ElasticSearch经典面试题
  8. 1002.ubuntu系统级BUG-/dev/ttyUSB0
  9. TokenInsight:反映区块链行业整体表现的TI指数较昨日同期上涨0.56%
  10. LeetCode刷题(50)--Word Search
  11. 深度linux 2014 体验机预览,[视频]深度Linux体验机计划
  12. ps命令,性能监控,grep命令
  13. CentOS下Vim编辑器的使用
  14. mysql如何防止幻读
  15. python-opencv标定相机内参(针孔+鱼目)
  16. 岁月温柔-8 妈妈的抑郁症?
  17. 2. linux默认的系统管理员账号是,2019.10第二周 王俊懿_Linux
  18. ‘class QFontMetrics‘ has no member named ‘horizontalAdvance‘
  19. 【IoT开发】D3引擎升级啦!速速来体验机智云新版智能场景推送
  20. C#:今日上机问题描述:从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2-10为数字本身,A为1,J为11,Q为12,K为13,而大小王可以看成任意数字。

热门文章

  1. 绩效管理是什么?怎么做绩效管理?
  2. 超详细教你10分钟搭建一个高端的B2B2C模式的综合性商城|含来客推V3源码下载
  3. 硬件工程师必备秘籍,模拟电子经典200问!
  4. 通过Live Writer Blog客户端来写blog
  5. java 打开指定文件,java解决指定应用程序打开指定文件
  6. python最小生成树算法_图算法|Prim算法求最小生成树
  7. 算法(第4版)Algorithms, Fourth Edition
  8. 基于GPU加速全局紧耦合的激光-IMU融合SLAM算法(ICRA2022)
  9. OpenCV 4.5.4 刚刚发布!新增SoftNMS、DNN模型8位量化等功能
  10. 性能SOTA、适用多种类型物体,国防科技大学单张RGB-D图像预测物体对称性