首页 > 代码库 > MySQL api
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;如果不会导致唯一值列重复的问题,则插入新行。
MySQL api
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。