Мы используем UUID в качестве первичного ключа для нашей базы данных Oracle DB и пытаемся определить подходящую максимальную длину символа для VARCHAR. По-видимому, это 36 символов, но мы заметили, что сгенерированные UUID длиннее этого - до 60 символов. Кто-нибудь знает подходящую максимальную длину char для UUID ??
primary-key
uuid
user1753862
источник
источник
VARCHAR
s?Ответы:
Раздел 3 RFC4122 предоставляет формальное определение строковых представлений UUID. Это 36 символов (32 шестнадцатеричных цифры + 4 тире).
Похоже, вам нужно выяснить, откуда берутся недопустимые 60-символьные идентификаторы, и решить: 1) хотите ли вы их принять и 2) какая максимальная длина этих идентификаторов может зависеть от того, какой API используется для их создания.
источник
Это идеальный вид поля для определения как CHAR 36, кстати, не как VARCHAR 36, поскольку каждое значение будет иметь одинаковую длину. И вы будете использовать меньше места для хранения, поскольку вам не нужно хранить длину данных для каждого значения, а только значение.
источник
[0-9A-Fa-f-]
что составляет 23 различных октета в ASCII.В наши дни большинство баз данных имеют собственный тип UUID, чтобы упростить работу с ними. Если у вас нет, это всего лишь 128-битные числа, поэтому вы можете использовать BINARY (16), и если вам часто нужен текстовый формат, например, для устранения неполадок, добавьте вычисляемый столбец для его автоматического создания из двоичного столбца. , Нет веской причины хранить текстовую форму (намного большего размера).
источник