Подтвердить что ты не робот

Максимальная длина символа UUID

Мы используем UUID в качестве первичного ключа для вывода Oracle и пытаемся определить соответствующую максимальную длину символа для VARCHAR. По-видимому, это 36 символов, но мы заметили, что UUID сгенерирован длиннее этого - до 60 символов в длину. Кто-нибудь знает подходящую максимальную длину char для UUID??

4b9b3361

Ответ 1

Раздел 3 RFC4122 предоставляет формальное определение строковых представлений UUID. Это 36 символов (32 шестнадцатеричных цифры + 4 тире).

Похоже, вам нужно выяснить, откуда поступают недопустимые 60-символьные идентификаторы, и решить 1), хотите ли вы их принять, и 2) какая максимальная длина этих идентификаторов может быть основана на том, какой API используется для их генерации.

Ответ 2

Между прочим, это идеальный тип поля, которое определяется как CHAR 36, а не VARCHAR 36, поскольку каждое значение будет иметь одинаковую длину. И вы будете использовать меньше места для хранения, так как вам не нужно хранить длину данных для каждого значения, только значение.

Ответ 3

В наши дни большинство баз данных имеют собственный тип UUID, что упрощает работу с ними. Если у вас нет, это просто 128-битные числа, поэтому вы можете использовать BINARY (16), и если вам часто требуется текстовый формат, например, для устранения неполадок, то добавьте вычисляемый столбец, чтобы автоматически генерировать его из двоичного столбца., Нет веских причин для хранения (гораздо большей) текстовой формы.