Я не понимаю, почему
SELECT UUID();
Возвращает что-то вроде:
3f06af63-a93c-11e4-9797-00505690773f
Но если я вставляю его в двоичное (16) поле (функция UUID()), например, перед триггером BEFORE INSERT и запускает select, он возвращает что-то вроде:
0782ef48-a439-11
Обратите внимание, что эти два UUID - это не одни и те же данные.
Я понимаю двоичный код, и строка UUID не выглядит идентичной, но не должны ли выбранные данные по крайней мере быть такими же длинными? В противном случае, возможно, он может быть как можно более уникальным?
Лучше ли хранить его как char (36)? Мне просто нужно, чтобы он был уникальным для предотвращения дублирования вставок. Он никогда не выбирается или не используется для соединений.
EDIT:
перед срабатыванием триггера:
BEGIN
if NEW.UUID IS NULL THEN
NEW.UUID = UUID();
END IF
END