8.12. Тип UUID #
Тип даннÑÑ
uuid ÑоÑ
ÑанÑÐµÑ ÑнивеÑÑалÑнÑе ÑникалÑнÑе иденÑиÑикаÑоÑÑ (Universally Unique Identifiers, UUID), опÑеделÑннÑе в RFC 9562, ISO/IEC 9834-8:2005 и ÑвÑзаннÑÑ
ÑÑандаÑÑаÑ
. (РнекоÑоÑÑÑ
ÑиÑÑемаÑ
ÑÑо назÑваеÑÑÑ GUID, глобалÑнÑм ÑникалÑнÑм иденÑиÑикаÑоÑом.) ÐÑÐ¾Ñ Ð¸Ð´ÐµÐ½ÑиÑикаÑÐ¾Ñ Ð¿ÑедÑÑавлÑÐµÑ Ñобой 128-биÑное знаÑение, генеÑиÑÑемое ÑпеÑиалÑнÑм алгоÑиÑмом, пÑакÑиÑеÑки гаÑанÑиÑÑÑÑим, ÑÑо ÑÑим же алгоÑиÑмом оно не бÑÐ´ÐµÑ Ð¿Ð¾Ð»ÑÑено болÑÑе нигде в миÑе. Таким обÑазом, ÑÑи иденÑиÑикаÑоÑÑ Ð±ÑдÑÑ ÑникалÑнÑми и в ÑаÑпÑеделÑннÑÑ
ÑиÑÑемаÑ
, а не ÑолÑко в единÑÑвенной базе даннÑÑ
, как знаÑÐµÐ½Ð¸Ñ Ð³ÐµÐ½ÐµÑаÑоÑов поÑледоваÑелÑноÑÑей.
RFC 9562 опÑеделÑÐµÑ 8 ÑазлиÑнÑÑ
веÑÑий UUID. ÐÐ°Ð¶Ð´Ð°Ñ Ð²ÐµÑÑÐ¸Ñ Ð¸Ð¼ÐµÐµÑ Ñвои ÑÑÐµÐ±Ð¾Ð²Ð°Ð½Ð¸Ñ Ðº генеÑаÑии новÑÑ
знаÑений UUID и Ð¾Ð±Ð»Ð°Ð´Ð°ÐµÑ Ð¾ÑобÑми пÑеимÑÑеÑÑвами и недоÑÑаÑками. PostgreSQL поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ ÑобÑÑвеннÑÑ Ð³ÐµÐ½ÐµÑаÑÐ¸Ñ UUID Ñ Ð¸ÑполÑзованием алгоÑиÑмов UUIDv4 и UUIDv7. Также допÑÑкаеÑÑÑ Ð³ÐµÐ½ÐµÑаÑÐ¸Ñ Ð·Ð½Ð°Ñений UUID вне Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
Ñ Ð¿Ñименением лÑбого алгоÑиÑма. Тип даннÑÑ
uuid можно иÑполÑзоваÑÑ Ð´Ð»Ñ Ñ
ÑÐ°Ð½ÐµÐ½Ð¸Ñ Ð»Ñбого UUID, незавиÑимо Ð¾Ñ ÐµÐ³Ð¾ иÑÑоÑника и веÑÑии.
UUID запиÑÑваеÑÑÑ Ð² виде поÑледоваÑелÑноÑÑи ÑеÑÑнадÑаÑеÑиÑнÑÑ ÑиÑÑ Ð² нижнем ÑегиÑÑÑе, ÑазделÑннÑÑ Ð·Ð½Ð°ÐºÐ°Ð¼Ð¸ минÑÑа на неÑколÑко гÑÑпп, в Ñаком поÑÑдке: гÑÑппа из 8 ÑиÑÑ, за ней ÑÑи гÑÑÐ¿Ð¿Ñ Ð¸Ð· 4 ÑиÑÑ Ð¸, наконеÑ, гÑÑппа из 12 ÑиÑÑ, ÑÑо в ÑÑмме ÑоÑÑавлÑÐµÑ 32 ÑиÑÑÑ Ð¸ пÑедÑÑавлÑÐµÑ 128 биÑ. ÐÑÐ¸Ð¼ÐµÑ UUID в ÑÑом ÑÑандаÑÑном виде:
a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11
PostgreSQL Ñакже пÑÐ¸Ð½Ð¸Ð¼Ð°ÐµÑ Ð°Ð»ÑÑеÑнаÑивнÑе ваÑианÑÑ: ÑиÑÑÑ Ð² веÑÑ Ð½ÐµÐ¼ ÑегиÑÑÑе, ÑÑандаÑÑнÑÑ Ð·Ð°Ð¿Ð¸ÑÑ, заклÑÑÑннÑÑ Ð² ÑигÑÑнÑе Ñкобки, запиÑÑ Ð±ÐµÐ· минÑÑов или Ñ Ð¼Ð¸Ð½ÑÑами, ÑазделÑÑÑими лÑбÑе гÑÑÐ¿Ð¿Ñ Ð¸Ð· ÑеÑÑÑÑÑ ÑиÑÑ. ÐапÑимеÑ:
A0EEBC99-9C0B-4EF8-BB6D-6BB9BD380A11
{a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11}
a0eebc999c0b4ef8bb6d6bb9bd380a11
a0ee-bc99-9c0b-4ef8-bb6d-6bb9-bd38-0a11
{a0eebc99-9c0b4ef8-bb6d6bb9-bd380a11}ÐÑводиÑÑÑ Ð·Ð½Ð°Ñение ÑÑого Ñипа вÑегда в ÑÑандаÑÑном виде.
Ðак можно ÑгенеÑиÑоваÑÑ UUID в PostgreSQL, опиÑÑваеÑÑÑ Ð² Разделе 9.14.