GUID в качестве уникального ключа с SQLite - PullRequest
6 голосов
/ 17 июля 2010

Я нашел подпрограмму генерации GUID с python .

Выполнение кода дает мне следующие результаты.

GUID: 00000129e0e72d9b2aab3c1500ac001000e90001
    Time:    Sat, 17 Jul 2010 09:55:33 (millis: 0.787)
    IP:      172.16.233.1
    Counter: 715865109

В комментариях к этому коду есть следующее сообщение.

###   GUIDs make wonderful database keys.  They require no access to the 
###   database (to get the max index number), they are extremely unique, and they sort 
###   automatically by time.   GUIDs prevent key clashes when merging
###   two databases together, combining data, or generating keys in distributed
###   systems.

Вопросы

  • Это работает с SQLite? Насколько я знаю, тип INTEGER в SQLite составляет 8 байтов, а с 8 байтами невозможно хранить значение 0x00000129e0e72d9b2aab3c1500ac001000e90001 или 101362835865894089778560972572099193929729 в ​​десятичном виде.
  • Есть ли способ получить уникальный идентификатор в глобальном масштабе с SQLite?

Ответы [ 3 ]

12 голосов
/ 17 июля 2010

Кроме того факта, что он занимает 32 байта вместо 16, что не так с хранением GUID в виде текста в SQLite?

8 голосов
/ 21 января 2013

Хорошая статья, чтобы помочь вам принять решение ....

Первичные ключи: идентификаторы и идентификаторы GUID:

http://www.codinghorror.com/blog/2007/03/primary-keys-ids-versus-guids.html

0 голосов
/ 19 июля 2010

Каждая строка данных SQLite имеет 64-битный локально-уникальный идентификатор.ВЫБЕРИТЕ rowid ИЗ таблицы ...

...