【问题标题】:is auto increment looping in mysql?mysql中的自动增量循环?
【发布时间】:2017-10-27 20:16:22
【问题描述】:

我想在每次有人连接到我的网站时设置一个自动增量 ID。

但是当用户重新加载或退出时,我想清除与该用户 ID 相关的信息并匹配具有此 ID 的新用户而不是创建一个新 ID。 当前用户/id 列表饱和时会创建新的 id。

如果我没记错的话,phpMyAdmin 中的 MySQL 自动增量选项只是自动增量。你知道当检查自动增量时是否有办法像我想要的那样直接设置它?

PS:我不想要随机 id。我想用 PHP 循环来分割用户,如果我使用线性 id 模式会更容易。

谢谢

【问题讨论】:

  • 你想做什么都没用。相反,您需要描述您希望如何拆分用户。
  • 嗯,我想你想用 Unique 存储 .auto 增量 id。然后你检查是否有同一个用户再次来到你的网站,然后检查 .. 用户已经使用而不是再次提供id .. 嗯
  • 我开发了一个非常好的和简单的算法来将这些用户分成房间,它非常适合这个 id 系统。我知道我可以给用户一个与随机 ID 相关的数字。但如果 id 直接做就更好了。
  • 我需要的是一个扫描 id 数组的循环,如果每个 id 都与连接的用户相关,那么会创建另一个 id 并自动递增。否则,用户与循环中找到的第一个废弃 id 匹配。我只是不知道设置此循环的最佳位置在哪里。这就是为什么我问我是否可以直接修改 phpmyadmin 中的自动增量属性。
  • autoincrement 只能用于创建代理键。除了唯一标识一条记录之外,您不应依赖自动增量列中的数字来具有任何特定含义。

标签: php mysql ajax pdo


【解决方案1】:

您可以将下一个可用 ID 存储在数据库中的某个位置,从 1 开始。当您为用户分配一个 ID 时,您会分配下一个可用 ID,然后增加“下一个可用 ID”,直到目前没有人拥有该 ID ID。删除用户时,如果该用户的 ID 小于下一个可用 ID,则将下一个可用 ID 更新为已删除用户的 ID。例如:

  • NA-id = 1
  • 添加 User1(id 设置为 1,NA-id = 2)
  • 添加 User2(id 设置为 2,NA-id = 3)
  • 添加 User3(id 设置为 3,NA-id = 4)
  • 删除用户 2(id 为 2,小于 4,所以 NA-id = 2)
  • 添加 User4(id 设置为 2,NA-id 尝试 3,但已被占用,因此转到 4)

等等……

【讨论】:

  • 感谢您的回复,非常聪明的方式。我想我可以做一个这样的循环(近似语言): for ($i=0; $i
  • 这是一个好主意,我非常感激,但我认为上面的循环是最简单的。它也没有真正回答这个问题。我想点赞您的帖子,但我没有所需的声誉分数。
猜你喜欢
  • 1970-01-01
  • 2020-02-10
  • 2018-09-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多