zoukankan      html  css  js  c++  java
  • Mysql数据存在更新,不存在则插入的实现

    有些情况下,我们需要对数据库进行插入或更新操作的时候需要先根据特定的字段去判断是否已存在,然后做出不同的插入或者跟新操作。

    replace函数:

    我们要在需要判断的字段上建立一个唯一索引,且这个字段不能为空,否则就和insert完全一样了。replace其实是先删后插,给合并为一个操作了。

    执行:

    replace into testtb (id,name,age) values('1','zhangsan','66'),('4','zhaoliu','44');

     结果:

    可以看出,name为“zhangsan”的那条记录的age更新为“66”,并且插入了一条记录“4   zhaoliu   44”的数据。

    ON DUPLICATE KEY UPDATE实现:

     ON DUPLICATE KEY UPDATE需要判断的字段为主键或拥有UNIQUE索引,

     

     执行:

    INSERT INTO testtb(id,name,age) VALUES ('1','zhangsan','77'),('5','qianqi','55')
    ON DUPLICATE KEY UPDATE age='88';

    结果:

    可以看出,根据第一条数据的age更新为了“88”,并且插入了一条记录“5   qianqi   55”的数据。

     除了以上的两种方法以外,也可以写一个sql函数来先查询再判断,那样相对麻烦且效率差一些。 

  • 相关阅读:
    JZOJ 2020.10.6 提高B组反思
    【NOIP2011模拟11.1】钓鱼
    JZOJ【NOIP2012模拟8.9】2020.10.5 T1
    ⑫linux基础命令 过滤 grep
    ⑪linux基础命令 tail
    ⑩linux基础命令 head
    ⑨linux基础命令 cat
    ⑧linux基础命令 rm
    ⑦linux基础命令 mv
    ⑥linux基础命令 cp
  • 原文地址:https://www.cnblogs.com/hooly/p/8137270.html
Copyright © 2011-2022 走看看