同时生成会员编号时重复的ID

魔法师

我有一个供您捕获新用户信息的地方。我通过获取递增的最后一个号码来生成会员号码。现在发生的是,有2个管理员用户从不同的站点创建了2个新用户,两个用户都获得了相同的最后一个id,而当一个用户试图保存该ID时,由于第一个管理员用户已经使用相同的最后一个数字保存了该用户,因此出现了错误。这基本上是我要做的

id_count是一个AI字段

管理员从前端选择添加用户。

下面的查询运行并带回最后一个数字

SELECT id_count FROM members order by id_count DESC Limit 1
member_id = $row['id_count'] +1

现在,如果我有2个管理员用户完全在同一时间这样做。两者都获得相同的新会员号。Admin1保护他的用户安全,这很好。现在,当Admin2保护信息安全时,新号码已经存在,信息也不安全。会员编号是唯一字段

g

这称为竞争条件。

在数据库上工作的应用程序应将此新用户视为还没有ID(可能在内部使用否定的用户ID或其他方式)。仅在创建新用户条目时,才分配最终的永久用户ID,这是通过自动增量数据库字段完成的,这是一个原子操作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章