我在我的数据库中使用Guids作为主键,并想知道是否有可能会生成重复的Guid。 Guid保证是唯一的吗?Guids保证是唯一的吗?
3
A
回答
3
虽然每个生成的GUID不能保证是唯一的,总 数唯一密钥(2128或3.4×1038)的是如此之大,产生相同数目的概率 两次非常小。
您可以查看关于该here的更多信息。
一个可能的解决方案避免重复的GUID(如果你仍然想一个)是使用UNIQUE constraint。
4
虽然每个生成的GUID不能保证是唯一的,但唯一键的总数(2^128或3.4×10^38)非常大,以致相同数字两次产生的概率非常小。例如,考虑可观测的宇宙,其中包含约5×10^22星;每颗恒星可以拥有6.8×10^15个通用唯一GUID。从。
1
如果您使用NEWSEQUENTIALID()生成一个,它们将保证是唯一的。尽管如此,微软声称[1],这将是唯一的,并且
世界上没有其他计算机将生成GUID 值的副本。
维基状态[2]
微软加入)称为 NEWSEQUENTIALID(在Transact-SQL语言,[8],其产生被保证在值 增加的GUID的函数,但是可以用低级号开始(仍能保证 唯一的),当服务器重新启动
总之:在实践中,他们将是唯一的。
[1] http://msdn.microsoft.com/en-us/library/ms190215(SQL.105).aspx
[2] http://en.wikipedia.org/wiki/Globally_unique_identifier#Sequential_algorithms
相关问题
- 1. r.uuid()保证是唯一的吗?
- 2. Guids保证在创作上独一无二吗?
- 3. GetType()。GetHashCode()有保证唯一性吗?
- 4. MonetDB是时间戳保证是唯一
- 5. File :: Temp文件名保证在进程中是唯一的吗?
- 6. 这个散列保证是唯一的吗?
- 7. 什么是shortid唯一性的保证?
- 8. 使用hashlib.sha256创建唯一的ID;这保证是独一无二的吗?
- 9. 唯一()保存顺序吗?
- 10. 您能保证mysql中的唯一序号吗
- 11. UUID是唯一的吗? iphone
- 12. Passport.js:UID是唯一的吗?
- 13. ManagedThreadID不是唯一的吗?
- 14. Shopify metafield ID是唯一的唯一用户或唯一吗?
- 15. AssetURL是否保证在设备上是唯一的?
- 16. Silex/Symfony表单验证器:确保一个值是唯一的
- 17. 保证数据库中的唯一值
- 18. OpenCV的匿名/保证唯一窗口
- 19. 是认证一个保留字吗?
- 20. 验证CanCanCan的唯一性是错误的吗?
- 21. @EJB的无状态bean保证是唯一的ejb实例?
- 22. 序列号是X509证书的唯一密钥吗?
- 23. 这是唯一身份证的好方法吗?
- 24. @Service是否保证Spring中的唯一性?
- 25. 缩小JavaScript是保护源代码的唯一方法吗?
- 26. 如何保持唯一验证Laravel 5.2
- 27. 可以使用Backbone模型的cid作为html id属性吗?它保证是唯一的吗?
- 28. facebook api的user_id是唯一的吗?
- 29. 是群组的唯一ID在多个域中保持唯一
- 30. 我可以在Slick中选择单行吗?也可以保证它是唯一返回的行吗?
**不,他们不是!**你仍然有重复......每个GUID由'NEWSEQUENTIALID()产生的机会非常渺茫'有保证在该计算机上是唯一的** **只有..... –
@marc_s我认为这个问题是在单个服务器的上下文中提出的。尽管如此,我仍然不会说在另一台计算机上发生重复ID的机会,而且它与您的使用情况相关的数量远远少于“超薄”。这就是为什么我说他们在实践中会是独一无二的,我不敢反对使用GUID,因为他们99,99999%保证是唯一的而不是100%。 :) – Rob