Документация по PostgreSQL 9.1.1 | ||||
---|---|---|---|---|
Prev | Fast Backward | Chapter 8. Типы данных | Fast Forward | Next |
Тип данных uuid хранит универсальные уникальные идентификаторы (UUID) как определено RFC 4122, ISO/IEC 9834-8:2005 и смежными стандартами. (Некоторые системы называют этот тип данных как глобальный уникальный идентификатор или GUID .) Этот 128-битный идентификатор, генерируется с помощью алгоритма, призванного обеспечить максимально возможную уникальность генерируемого идентификатора от других генерируемых идентификаторов, использующих этот же алгоритм. Таким образом, для распределённых систем эти идентификаторы предоставляют более лучшую гарантию уникальности, чем те генераторы последовательностей, которые уникальны только внутри одной база дынных.
UUID записывается как последовательность шестнадцатеричный цифр в нижнем регистре, в нескольких группах, разделённых переносами, обычно группа из 8 цифр, за которой следует три группы по 4 цифры, за которыми следует группа из 12 цифр, т.е. всего 32 цифры, представленные 128 битами. Вот пример UUID в стандартной форме:
a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11
PostgreSQL также позволяет следующие альтернативные формы ввода: использовать цифры в верхнем регистре, стандартный формат заключается в фигурные скобки, позволяя опускать все или некоторые переносы, добавлять переносы после любой группы из 4-х разрядов. Примеры:
A0EEBC99-9C0B-4EF8-BB6D-6BB9BD380A11 {a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11} a0eebc999c0b4ef8bb6d6bb9bd380a11 a0ee-bc99-9c0b-4ef8-bb6d-6bb9-bd38-0a11 {a0eebc99-9c0b4ef8-bb6d6bb9-bd380a11}
Вывод значений данного типа всегда осуществляется в стандартной форме.
PostgreSQL предоставляет для UUID функции хранения и сравнения, но ядро базы данных не включает никаких функций для генерации UUID, потому что нет единого алгоритма, подходящего для каждого приложения. Модуль uuid-ossp предоставляет функции, которые реализуют некоторые стандартные алгоритмы. С другой стороны, UUID может генерироваться клиентскими приложениями или другим библиотеками, вызываемыми через функции на стороне сервера.