es中修改某个字段值_MySQL中ON_DUPLICATE_KEY_UPDATE的用法实践

3ffb41dc35dc38923256d36641953861.png

作者:郝赟

前言

最近在平台推送业务的特性开发中,使用到了MySQL的"ON DUPLICATE KEY UPDATE"语法,这里结合业务场景对该语法的使用做个介绍。

业务场景

使用平台的推送服务之前,需要注册设备。对于终端的注册信息,主要有玩家的user_id、对应于某渠道的客户端包名bundle_id、以及其它相关信息,例如当前设备的推送类型(FCM、APNS、Baidu等)、设备的device_token、依托于AWS推送服务的Amazon 资源名称(ARN)、 该终端设备对应玩家的默认语言、所在国家或地区等信息。

不同游戏终端设备的注册逻辑大同小异,基本都是在玩家每次上线时由游戏服务器向平台的推送服务发起注册请求。如果当前终端设备之前注册过,则只是更新该终端设备的其它注册信息(例如推送渠道更改、设备device_token变更、默认语言、国家地区信息的变更等);假若当前终端设备未注册过,就写入一条新的记录。

对于iOS、应用宝以外的渠道下载的客户端(以bundle_id作区分),原则上玩家账号(user_id)是可以互通的。也就是说,某个游戏中同一个user_id可以对应多个bundle_id,一条终端设备的注册记录以自增id作为PRIMARY KEY,同时以(user_id, bundle_id)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值