我有一个供您捕获新用户信息的位置。我通过获取递增的最后一个号码来生成会员号码。 现在发生的事情是2个管理员用户从不同的站点创建2个新用户, 两者都获得了相同的最后一个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保护信息安全时,新号码已经存在并且信息也不安全。会员号是唯一字段
答案 0 :(得分:0)
这称为比赛条件。
在数据库上工作的应用程序应将此新用户视为还没有ID(可能在内部使用否定的用户ID或其他方式)。仅在创建新用户条目时,才分配最终的永久用户ID,这是通过自动增量数据库字段完成的,这是一个原子操作。