项目中对接一个单点登陆的回调api,需要判断用户是否在库,不在库新增用户,在库更新登陆次数,大概代码如下:<?php

$isExist = true;

if ($isExist)

{

insert([

'id' => 392223903,

'username' => 'gaojiufeng',

'password' => '123456',

'login' => 1, //登陆次数

]);

}

else

{

update([

'login' => '+1'

]);

}

上面的代码在高并发下会出现问题,主键会重复插入报错。于是我们使用MySQL ON DUPLICATE KEY UPDATE语句,不存在直接新增,存在就更新,代码如下:INSERT INTO member ( id, username, PASSWORD, login )

VALUES

( 392223903, 'gaojiufeng', '123456', 1 )

ON DUPLICATE KEY UPDATE login = login + 1;

其实在thinkphp自带了这种方案,但是使用的REPLACE INTO语句,REPLACE INTO语句发现主键重复会删除原来的数据,再次新增一条。虽然能够达到我的要求,但是我并不想更新全部字段,目前看来ON DUPLICATE KEY UPDATE语句性能更高。

mysql update主键冲突_mysql主键重复,不报错,只更新的操作相关推荐

  1. mysql主主同步冲突_MySQL主主同步主键冲突处理

    两台数据库都报slave同步失败了,先说明一下环境,架构:lvs+keepalived+amoeba+mysql,主主复制,单台写入, 主1:192.168.0.223(写) 主2:192.168.0 ...

  2. mysql 存储微信昵称乱码_MYSQL 保存微信昵称特殊字符报错解决方法-设置编码集为utf8mb4的方法...

    mysql utf8mb4 保存微信昵称特殊字符报错方法 公众号二次开发,在处理用户昵称的时候发现有的时候一些emoji是4字节的表情无法保存入库,经过查找资料发现是因为字段的编码问题造成的, utf ...

  3. mysql 导入主键冲突_MySQL 处理插入过程中的主键唯一键重复值的解决方法

    本篇文章主要介绍在插入数据到表中遇到键重复避免插入重复值的处理方法,主要涉及到IGNORE,ON DUPLICATE KEY UPDATE,REPLACE:接下来就分别看看这三种方式的处理办法. IG ...

  4. mysql 主主同步失败_MySQL 主主复制失败问题

    今天遇到 MySQL 主主同步复制失败的问题,记录下解决办法 注意下文中 MySQL 版本比较老,现在新版版本支持了很多新的特性.笔者用的 MySQL 版本是 5.7. 问题描述: DB1 和 DB2 ...

  5. Linux Centos8 Mysql启动(Active: failed (Result: exit-code))及登录报错(ERROR 1045 (28000): Access denied )

    Linux Centos8 环境上启动mysql 启动报错如下: [root@MaxwellDBA ~]# systemctl start mysqld Job for mysqld.service ...

  6. MySQL 排错-解决MySQL非聚合列未包含在GROUP BY子句报错问题

    MySQL 排错-解决MySQL非聚合列未包含在GROUP BY子句报错问题 参考文章: (1)MySQL 排错-解决MySQL非聚合列未包含在GROUP BY子句报错问题 (2)https://ww ...

  7. mysql主主 主键冲突_mysql主从复制原理,主主复制时主键冲突解决

    主从复制原理: 1.master的增删改记录写入binlog: 2.slave的I/O Thread(负责读取master的binlog)读取binlog并将记录写入relaylog: 3.slave ...

  8. mysql 备库 hang住_mysql主键的缺少导致备库hang住

    最近线上频繁的出现slave延时的情况,经排查发现为用户在删除数据的时候,由于表主键的主键的缺少,同时删除条件没有索引,或或者删除的条件过滤性极差,导致slave出现hang住,严重的影响了生产环境的 ...

  9. mysql 主外键 策略_mysql外键策略

    1.外键 建表时添加外键:constraint 外键名 foreign key 从表字段 references 主表字段 级联操作 create table dage( create table xi ...

最新文章

  1. 分布式任务队列 Celery — Overview
  2. C语言常见单链表面试题(2)
  3. UC浏览器APP如何卸载插件
  4. 配置EditPlus
  5. Boot.ini无解
  6. 如何让NN分类输出[0,1]的值,并且相加等于1
  7. 浅析scipy.signal.find_peaks()
  8. SHELL中函数的写法、调用、参数、返回值代码范例
  9. Python之动态网页爬虫方案介绍及selenium+chrome详解
  10. 商务与经济统计学习 --多个比率的比较、独立性及拟合优度检验
  11. 如何用html和css制作网页,html和css如何实现制作一个网页
  12. 微信第三方平台对接小程序发版
  13. 计算机网络的共享如何关闭,怎么查看并关闭网络共享
  14. ES数据库重建索引——Reindex(数据迁移)
  15. Java输入1~12之间的整数,显示该月份的英语单词及这个月属第几季度。
  16. php开源小程序直播,微信小程序直播
  17. c语言开头的作用是什么,C语言为什么开头都加;#includestdio.h有什么作用?
  18. RDD论文翻译:基于内存的集群计算容错抽象
  19. 2.5 矩阵因式分解(第2章矩阵代数)
  20. 嵌入式——独立按键控制LED显示二进制

热门文章

  1. 2021-06-14使用CiLocks绕过Android的锁屏功能
  2. 招聘一位优秀的工程师
  3. javascript递归函数定义和常见递归算法
  4. 微信小程序合集7(体育赛事+高仿知乎+微赞论坛+数独游戏+小熊日记)
  5. 热血江湖数据库MYSQL修改_求更多热血江湖私服 修改数据库语句
  6. jquery.ztree 打开父节点_增额终身寿险的正确打开方式
  7. Python实现DNSlog自动识别外带
  8. C# 在华为北向(推送)中的应用-CORBA编程原理与实现
  9. 腾讯视频MP4转换最新方法2019-7
  10. 服务宕机问题排查思路