• MySQL api


    今天看去年年中写的代码,留意到一个关键时刻能提高效率的api:on duplicate key update;

    语法:

    INSERT INTO INSERT INTO g_iot_user_building
    ()
    VALUES()

    ON DUPLICATE KEY UPDATE
    a='a',
    b='b';

    当你想向某个表中插入数据,同时保证该条数据在表中不存在时,可使用上面这个方法;

    值得注意的是,该方法是mysql特有,并不是sql通用,所以使用的时候需要区别使用;

    使用场景:

    调用钉钉人员相关接口,同步人员信息到本地数据库,此时,需要注意的是 判断钉钉接口返回的人员信息是否已存在于数据库中,还是新加入的人员;

    此时,如果使用轮询去判断,则稍显繁琐,可使用 on duplicate key update语法,

    需要留心的是,需要为用户的userid为设置UNIQUE索引(该键唯一,来源钉钉api),这样,即可满足:若数据库已有该人员信息,则更新,若没有该人员信息,则插入数据到表;

    解释:

     如果在INSERT语句末尾指定了ON DUPLICATE KEY UPDATE,并且插入行后会导致在一个UNIQUE索引或PRIMARY KEY中出现重复值,则在出现重复值的行执行UPDATE;如果不会导致唯一值列重复的问题,则插入新行。

  • 相关阅读:
    SRM146 DIV1 600
    SRM145 DIV1 1000
    SRM146 DIV1 300
    SRM145 DIV1 600
    【HTML打卡】0115 margin重叠、内联元素、css控制段落
    【HTML打卡】0114 盒模型margin、border、padding
    【HTML打卡】0113 div布局,css控制
    【HTML打卡】0112-html发展、doctype声明
    Machine Learning结课感想
    【ACM打卡】ZOJ 1045 2722 2830
  • 原文地址:https://www.cnblogs.com/zqsky/p/6890935.html
Copyright © 2020-2023  润新知