一尘不染

如何在MySQL中生成唯一ID?

mysql

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

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


阅读 951

收藏
2020-05-17

共1个答案

一尘不染

一个 编程的方式 可以是:

  • 在字段中添加一个唯一索引
  • 在PHP中生成随机字符串
  • 在PHP中循环(while(!DO_THE_INSERT))
    • 产生另一个字符串

注意:

  • 这可能很脏,但是具有与 DBMS无关* 的优点 *
  • 即使您选择使用特定于DBMS的唯一ID生成器功能(UUID等),也最好使用索引来确保 字段HAS为UNIQUE
  • 统计上完全不执行循环,仅在插入失败时才进入循环
2020-05-17