2013-02-15 5 views
0

документации (http://www.sqlite.org/lang_corefunc.html) говорит, что он генерирует N-байтовый двоичный объект, и он продолжает давать пример использования randomblob(16) с hex() для генерации уникальных идентификаторов.randomblob (N), в Sqlite

Но для большинства баз данных более чем достаточно randomblob (8). 8 байтов дают 64 бита, что даст 2^64 разных возможных значения (которые будут преобразованы в шестнадцатеричный формат на hex(randomblob(8)). Зачем тратить лишние 8 байтов?

ответ

2

GUID s определены как имеющие 128 бит.

+0

спасибо за ссылки. Но с практической целью иметь уникальные идентификаторы, будет ли 'hex (randomblob (8))' уже достаточным? – skyork

+1

Вы можете использовать столько или несколько байтов, сколько вы считаете нужным для вас; для уникальности вам даже не понадобится 'hex()'. В этом случае простое 64-битное число (как было возвращено функцией «random()») было бы еще проще обрабатывать. Это предложение действительно о создании GUID, совместимых с GUID других систем. –

Смежные вопросы