是否可以创建相同的指南
是否可以在一个应用程序中创建相同的指南
Guid id = Guid.NewGuid();
Is it possible to create identical guids in one application
Guid id = Guid.NewGuid();
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
从技术上来说,是的。例如,创建的 Guid 看起来像这样:
这意味着 32 个字符可以是字母(26 种可能性)或数字(10 种可能性)
这意味着每个位置有 36 种可能性,总共 36^32,大约为 36^32。 60 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000。
这意味着如果您创建 2 000 000 000 000 000 000 000 000 000 000 000每毫秒 0 000 个引导(这是不可能的),您将会平均一次会获得相同的 guid 创建两次,并且所有其他 guid 将是唯一的。
所以在实践中。不 ;)
Technically, yes. A created Guid looks for example like this:
That means 32 chars that can be a letter (26 possibilities) or a digit (10 possibilities)
That means 36 posibilities per position for a total of 36^32 that is approx. 60 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000.
That means that if you create 2 000 000 000 000 000 000 000 000 000 000 000 000 000 Guids every millesecond (which is impossible), you will on average get the same guid created twice one time, and all the other guids will be unique.
So in practice. No ;)
如果您询问
Guid.NewGuid()
创建重复 guid 的风险是否很高,那么答案是否定的。这取自维基百科:如果您问我们如何创建两个重复的 guid,那么答案就是:
If you are asking if the risk of
Guid.NewGuid()
creating duplicate guids is high, then the answer is no. This is taken from Wikipedia:If you are asking us how to create two duplicate guids, then this is the answer:
理论上?是的,
实际上吗?即使在单个应用程序中,与创建两个相同的 GUID 相比,您连续 10 次中奖的机会更高。
请参阅GUID 不唯一的简单证明
Theoreticaly? Yes
Practicaly? You have higher chance of winning lottery 10 times in a row, than creating two same GUIDs, even in single application.
See Simple proof that GUID is not unique
Guid.NewGuid() 将始终在全球范围内创建唯一的 Guid,而不仅仅是在单个应用程序内。
Guid.NewGuid() will always create a unique Guid, worldwide, not only inside a single application.
GUID 中的 U 代表唯一。 ;-) 所以这应该是不可能的。
The U in GUID stands for Unique. ;-) So it shouldn't be possible.
其实我刚刚也遇到过这种情况。我有一个包含 7 个项目的数据库表。在我的程序中,我添加了一个新实例,并使用
Guid.NewGuid()
作为其 ID。我收到一个DbUpdateException
消息,告诉我该 ID 与现有 ID 相同。再次尝试,效果很好。I've actually just had this happen. I had a database table containing 7 items. From my program, I added a new instance, using
Guid.NewGuid()
for its ID. I got aDbUpdateException
telling me the ID was identical to an existing one. Tried it again, it works fine.