在我们使用mybatis对mysql数据库进行增删改查的时候,可能会碰到比较棘手的情况,如这个问题:

当主键id自增时,同一个订单号下的数据可能经过多次更新,且要保证数据库中订单号唯一不重复,我们只能进行更新操作;但对于数据库本不存在的订单号,我们又想进行insert操作,且通过同一条sql语句实现这个功能,那我们该怎么做呢?

操作方法:

#第一步:建立唯一索引

你希望数据库中哪个字段的值作为唯一索引,到MySQL查询界面,使用以下命令:

例如:

ALTER TABLE student add UNIQUE(studentId)

#第二步:在对应的mappers下的xml文件中,编写SQL语句:

例如:当数据库中没有这个studentId时就insert;当数据库中有这个studentId,就自动更新

<insert id="saveOrUpdate">INSERT INTO student (name,age,studentId)VALUES  (#{name},#{age},#(studentId))ON DUPLICATE KEY UPDATE<if test='name != null'>name = #{name}</if><if test='age != null'>,age = #{age}</if></insert>

mysql 唯一索引与插入重复自动更新相关推荐

  1. mysql 唯一更新_MySQL 唯一索引和插入重复自动更新

    有时我们在往数据库插入数据的时候,需要判断某个字段是否存在,如果存在则执行更新操作,如果不存在则执行插入操作,如果每次首先查询一次判断是否存在,再执行插入或者更新操作,就十分不方便. ON DUPLI ...

  2. mysql 唯一索引出现重复数据_mysql使用唯一索引避免插入重复数据

    使用MySQL 索引防止一个表中的一列或者多列产生重复值 一:介绍MYSQL唯一索引 如果要强烈使一列或多列具有唯一性,通常使用PRIMARY KEY约束. 但是,每个表只能有一个主键. 因此,如果使 ...

  3. Mysql唯一索引和普通索引的区别,

    文章目录 Mysql唯一索引和普通索引的区别,那种速度快一点,原因是啥 理由说明: 结论: 1 普通索引 2 唯一索引 注意:唯一索引和普通索引使用的结构都是B-tree,执行时间复杂度都是O(log ...

  4. 在mysql中unique唯一索引的作用_MySQL_MySQL中的唯一索引的简单学习教程,mysql 唯一索引UNIQUE一般用于不 - phpStudy...

    MySQL中的唯一索引的简单学习教程 mysql 唯一索引UNIQUE一般用于不重复数据字段了我们经常会在数据表中的id设置为唯一索引UNIQUE,下面我来介绍如何在mysql中使用唯一索引UNIQU ...

  5. Mysql唯一索引 唯一约束

    Mysql唯一索引 唯一约束 唯一索引作为mysql众多索引常用的一种,在一次业务代码编写中详细了解了下此索引在此记载,如果错误地方还望同学们斧正 Mysql唯一索引 唯一约束 唯一索引的的作用 唯一 ...

  6. MySQL 唯一索引 UNIQUE KEY 会导致死锁?

    唯一性索引unique影响: 唯一性索引表创建: DROP TABLE IF EXISTS `sc`; CREATE TABLE `sc` (`id` int(11) NOT NULL AUTO_IN ...

  7. 为什么 MySQL 唯一索引会导致死锁,“有心杀贼,无力回天”?

    >>号外:关注"Java精选"公众号,菜单栏->聚合->干货分享,回复关键词领取视频资料.开源项目. 唯一性索引unique影响 唯一性索引表创建 DROP ...

  8. mysql 唯一索引_MySQL学会用索引,让你数据库的查询速度起飞

    MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度.打个比方,如果合理的设计且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MySQL就是一 ...

  9. mysql 唯一索引 性能_普通索引和唯一索引的区别、性能差异,以及其他索引简介...

    唯一索引和普通索引使用的结构都是B-tree,执行时间复杂度都是O(log n). 1.普通索引 普通索引(由关键字KEY或INDEX定义的索引)的唯一任务是加快对数据的访问速度.因此,应该只为那些最 ...

最新文章

  1. Linux下使用ssh动态验证码登陆机器
  2. When use jQuery databTables after add action reloa
  3. Win7+Ubuntu11
  4. python3 selenium 无头浏览器 无界面 chromedriver
  5. 国内的IDC数据中心运营维护前景如何?
  6. valgrind 详解
  7. 11gR2 RAC GoldenGate的HA配置
  8. 叮咚!你有一份来自明源云的圣诞邀约
  9. Android笔记-Activity相关+内存泄漏
  10. android基础知识之一
  11. glDrawArrays,glDrawElements用法
  12. 机器学习模型融合方法综述
  13. 职称计算机xp系统试题,2020年职称计算机WindowsXP测试题及答案.doc
  14. JavaScript定位页面元素属性(满满的干货)
  15. qoq是什么意思的缩写_有意思,“TTFN”居然是“再见”的缩写词,具体是指什么呢?...
  16. [Flash开发笔记] AS中保留多少位小数的函数
  17. CAT1 4G+以太网开发板腾讯云手机微信小程序显示温度和下发控制
  18. P1957 口算练习题
  19. wordpress安装教程_如何安装WordPress –完整的WordPress安装教程
  20. IT工具【日常随手记】

热门文章

  1. c++实现---十六进制转化为十进制
  2. 测试面试,面试官问如何测试电梯
  3. 跟领导谈话需注意什么_设计师必须注意的10个有趣的谈话
  4. wav转mp3用什么软件好?
  5. 60个最佳新年2012年日历壁纸
  6. 你的 IDE 太重了,试试 Emacs吧!
  7. Typora的中文字体解决方案
  8. C++ 宏定义与空格
  9. 基于联咏NT96670/675/672芯片全高清记录器方案开发的产品规格参数
  10. 想要成为一名优秀的程序员,这十八招必看