我想生成一个uuid,它应该被用作不同系统/数据库的唯一标识符。我阅读了这些示例,但我不明白我如何确定生成的id在不同的系统和数据库中是唯一的。
我希望你能在这里帮助我。
祝你好运
答案 0 :(得分:2)
UUID背后的想法是 - 取决于它们是如何生成的 - 有这么多值可用122位*表示偶然的机会碰撞 - 再次,取决于它们的生成方式 - 非常非常非常非常非常非常非常小。
维基百科的UUID第4版摘录(Leach-Salz随机):
换句话说,只有在接下来的100年中每秒生成10亿个UUID后,创建一个重复的概率大约为50%。如果地球上的每个人拥有6亿UUID,那么一次重复的概率约为50%。
...但是,这些概率仅在使用足够的熵生成UUID时才成立。
当然,还有其他UUID生成方案和“众所周知的GUID”,并非所有这些方案都适合“全球唯一”使用。 (此外,由于插入碎片,非专用UUID往往不能很好地用于主/群集密钥:SQL Server有NEWSEQUENTIALID来帮助解决该问题。)
快乐的编码。
* UUID中最多有128位,但有些UUID版本在内部使用了一些位。我不知道什么助手使用但我怀疑它也是UUIDv4。