注册时并发问题

Code_Mokey 2015-07-13 04:17:02
功能:用户注册时,用户ID不可重复。


逻辑: 点击注册时,先查询数据库,判断用户 ID是否存在,如果存在,将会返回用户信息已存在。不会注册该ID。如果不存在则将数据插入库中,返回注册成功。

这种情况下,当两人一起同时点击注册,会发生什么情况。如何解决,请教各位大牛。。。
...全文
1222 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_39883558 2018-12-28
  • 打赏
  • 举报
回复
引用 8 楼 qq_39883558 的回复:
fafasfsafasfsa
不好意思发错了,设置自增id,并且设置username 唯一索引
jun1111988 2018-03-14
  • 打赏
  • 举报
回复
用户ID字段加个唯一索引
u013184665 2015-07-21
  • 打赏
  • 举报
回复
这种情况是有的不过!平时这种情况不会发生!如果注册量大的话先放入缓存对列里然后服务器端去跑程序~~
Code_Mokey 2015-07-19
  • 打赏
  • 举报
回复
引用 3 楼 tianlebest 的回复:
设置一个id自增字段,注册成功后返回最新id就可以了
如果你设置自增涨字段,当用户A 用户B两人同时注册,两条记录一起插入 他们的用户名跟密码相同 ,等登陆时查询数据库,数据库里会查出两条记录,这时候你用什么来区分是用户A 还是用户B
gukuitian 2015-07-17
  • 打赏
  • 举报
回复
你说这方法就是比较常见的用法了,用起来也简单, 想用别的方法解决也可以,只是麻烦,也没心要 比如: 1:注册方法增加同步锁; 2:用户插入之前,对id做缓存,缓存已经存在就取消操作,注册成功后再移除缓存
引用 2 楼 qq133396743 的回复:
[quote=引用 1 楼 panxingwu2006 的回复:] A用户查询完某ID发现不存在,正在做插入的时候,B也来查询发现ID也不存在(因为A的插入还没有完成)。
对呀 , 然后两条数据一起插入,我觉得可能会有一条数据成功插入,一人插入失败,然后抛数据库异常。 我预想的 是用程序捕获数据库抛出的异常来给用户一个友好提示。但是这种情况不知道如何解决 还是就只能等数据库抛出异常 。[/quote]
tianlebest 2015-07-16
  • 打赏
  • 举报
回复
设置一个id自增字段,注册成功后返回最新id就可以了
Code_Mokey 2015-07-16
  • 打赏
  • 举报
回复
引用 1 楼 panxingwu2006 的回复:
A用户查询完某ID发现不存在,正在做插入的时候,B也来查询发现ID也不存在(因为A的插入还没有完成)。
对呀 , 然后两条数据一起插入,我觉得可能会有一条数据成功插入,一人插入失败,然后抛数据库异常。 我预想的 是用程序捕获数据库抛出的异常来给用户一个友好提示。但是这种情况不知道如何解决 还是就只能等数据库抛出异常 。
霸道攻城狮 2015-07-14
  • 打赏
  • 举报
回复
A用户查询完某ID发现不存在,正在做插入的时候,B也来查询发现ID也不存在(因为A的插入还没有完成)。

25,984

社区成员

发帖
与我相关
我的任务
社区描述
高性能WEB开发
社区管理员
  • 高性能WEB开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧