Я использую Гиды как первичные ключи в своей базе данных и задавался вопросом, возможно ли когда-нибудь создать дублирующее Guid. Гарантированы ли Гиды уникальными?Гиды гарантированно уникальны?
ответ
В то время как каждая из которых сформирована GUID, не гарантируется быть уникальным, общее количество уникальных ключей (2128 или 3,4 × 1038) настолько велика, что вероятность того же числа генерируются два раза очень мала.
Вы можете узнать больше информации об этом here.
Возможное решение, чтобы избежать дублирования GUIDs (если вы все еще хотите один), чтобы использовать UNIQUE constraint.
Хотя каждый сгенерированный GUID не является уникальным, общее количество уникальных ключей (2^128 или 3,4 × 10^38) настолько велико, что вероятность того, что одно и то же число генерируется дважды, очень мало. Например, рассмотрим наблюдаемую вселенную, которая содержит около 5 × 10 22 звезды; каждая звезда может иметь 6,8 × 10^15 универсально уникальных GUID.
От Wikipedia.
Гарантируется, что они будут уникальными, если вы используете NEWSEQUENTIALID() для его создания. Тем не менее, Microsoft утверждает, что [1], что он будет уникальным и
никакой другой компьютер в мире не будет создавать дубликат этого GUID значения.
Википедия состояний [2], что
Microsoft добавила функцию на языке Transact-SQL под названием NEWSEQUENTIALID(), [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. Как создать детерминированные гиды
- 2. Первичные ключи SSIS и гиды
- 3. Как использовать гиды в C#?
- 4. Идентификаторы объектов запроса уникальны?
- 5. Столбцы SQLite3 не уникальны
- 6. Уникальные номера PHP уникальны
- 7. Когда элемент гарантированно сфокусирован?
- 8. Гиды при перемещении jquery-ui-draggable boxes
- 9. Javascript перетаскивание - стиль иллюстратора «умные гиды»
- 10. Уникальны ли нити и процессы?
- 11. Идентификаторы сообщений SMTP глобально уникальны?
- 12. Почему идентификаторы потоков не уникальны?
- 13. Является ли r.uuid() гарантированно уникальным?
- 14. структура класса гарантированно порядок доступа
- 15. Когда Element.getBoundingClientRect гарантированно обновляется/уточняется?
- 16. ли поплавок неравенства гарантированно соответствовать
- 17. Как сделать свинг-свиток «гарантированно»?
- 18. ! 0 гарантированно 1 в C89?
- 19. Насколько уникальны идентификаторы surveillanceymonkey, возвращаемые API?
- 20. MySQL SELECT colums, где оба столбца уникальны
- 21. Уникальны ли идентификаторы модели пользователя AUMID?
- 22. 2 столбца уникальны в таблице mysql
- 23. Попытка проверить, уникальны ли все элементы списка
- 24. Названия директив angularJS уникальны (или нет)?
- 25. выберите все строки, где значения столбца уникальны.
- 26. Кто проверяет, что пространства имен XML уникальны?
- 27. Врезной график децилей, которые не уникальны
- 28. Создание первичного ключа, где комбинация столбцов уникальны
- 29. Как проверить, что атрибуты уникальны с RelaxNG?
- 30. Если все значения в списке уникальны
** Нет, они не так! ** У вас еще есть очень небольшой шанс дублей ... каждый Guid производства 'NEWSEQUENTIALID()' не гарантируется быть уникальным ** на этом компьютере ** только ..... –
@marc_s Я предположил, что этот вопрос задавался в контексте одного сервера. Тем не менее, я бы не назвал возможность дублирования идентификатора, когда-либо имевшего место на другом компьютере, и это было важно для вашего случая использования значительно меньше, чем «тонкий». Вот почему я говорю, что они будут уникальными на практике, и я бы не стал советоваться с использованием GUID, потому что они гарантированы 99,99999%, а не 100%. :) – Rob