Генератор UUID · форматNil UUID — нулевой идентификатор

Nil UUID — все 128 бит равны нулю. Это не случайное значение, а заранее известное: его используют как явное «идентификатора нет» там, где пустое значение недопустимо. У него нет ни версии, ни варианта. Парный к нему Max UUID — все биты единицы.

01Генератор02Устройство03Сравнение04Вопросы05Похожие
01

Генератор Nil UUID

формат выбран — все настройки и проверка в полном генераторе
Количество
Nil UUID всегда одинаков — пачка из одних нулей ни к чему.
Нажмите «Сгенерировать» — здесь появятся идентификаторы.
Все форматы, проверка и разбор UUID — в полном генераторе →
02

Как устроен: Nil UUID

Образец00000000-0000-0000-0000-000000000000
00000000-0000
все биты — ноль
0
на месте версии ноль: версии нет, это не «версия 0»
0
на месте варианта тоже ноль
000000000000
ни времени, ни случайности

Когда применять

  • Значение по умолчанию в колонке, которая не допускает NULL.
  • Маркер «ещё не присвоено» в протоколах и файлах, где поле обязательно.
  • Не годится как настоящий идентификатор: он один на всех.

Чем отличается от соседей

Против NULL: Nil — это значение, а NULL — его отсутствие; Nil проходит проверку формата и попадает в уникальные индексы, поэтому двух строк с Nil в уникальной колонке быть не может. Против Max UUID: обе заглушки из RFC 9562, Max — все единицы, его используют как верхнюю границу диапазона. Генерировать Nil пачкой бессмысленно — он всегда одинаков.

03

Сравнение форматов

ФорматДлинаСлучайностьВремя внутриСортируетсяСтандарт
UUID v436122 битанетнетRFC 9562
UUID v73674 битамс, 48 битдаRFC 9562
UUID v136узел и счётчик100 нс, 60 битнетRFC 9562, устаревший
Nil UUID36нетнет—RFC 9562
NanoID21126 битнетнетбиблиотека, не RFC
ULID2680 битмс, 48 битдаспецификация ULID, не RFC
04

Частые вопросы

Чтобы явно сказать «идентификатора нет» там, где поле обязано быть заполнено: колонка без NULL, обязательное поле протокола, значение по умолчанию в структуре. Nil — заранее известная константа из одних нулей, по которой отсутствие узнаётся сразу. В .NET она называется Guid.Empty, в Java — new UUID(0, 0), в стандарте RFC 9562 — Nil UUID.

Обновлено

«» добавлен в избранное