如何在MySQL中生成唯一的ID?

2022-08-30 13:45:22

我正在使用PHP和MySQL编写脚本,我想获得一个唯一的id(由字符串组成:大写字母和带数字的小写字母),例如:。我在PHP中发现了许多可以生成此类数字的函数,但我担心如何确保id是唯一的!gHYtUUi5b

更新:uuid很长,我的意思是这样的id,比如:(P5Dc)一个11个字母数字字符。


答案 1

我使用 UUID() 来创建一个唯一的值。

例:

insert into Companies (CompanyID, CompanyName) Values(UUID(), "TestUUID");

答案 2

您可能喜欢我们的做法。我想要一个看起来“随机”的可逆的唯一代码 - 这是一个相当普遍的问题。

  • 我们采用一个输入数字,例如 1,942。
  • 左键将其放入一个字符串中:“0000001942”
  • 将最后两位数字放在前面:“4200000019”
  • 将其转换为数字:4,200,000,019

我们现在有一个数字,该数字在呼叫之间差异很大,并且保证小于10,000,000,000。这不是一个糟糕的开始。

  • 将该数字转换为 Base 34 字符串:“2oevc0b”
  • 将任何零替换为“y”,将任何零替换为“z”:“2oevcyb”
  • 升档:“2OEVCYB”

选择 Base 34 的原因是,我们不必担心 0/O 和 1/l 的碰撞。现在,您有一个短随机查看的密钥,可用于查找 LONG 数据库标识符。


推荐