Содержание
Хранение и выборка UUID из базы данных
UUID можно хранить в базы данных в виде строки. Но база данных в 3 раза быстрее работает с UUID в двоичном формате.
Для хранения UUID в базе данных нужно использовать в поле с типом BLOB мин=16 макс=16. Надо обязательно указать минимальный и максимальный размер поля равный 16, иначе поиск будет производится очень медленно. Поле такого типа в базе данных MySQL имеет тип Binary(16).
Для преобразования UUID из строки в BLOB предназначена SQL-функция PackUUID.
Пример:// Использование функций базы данных Insert Into MyTable(uuid) Values(PackUUID('88db0c40-0a2e-102c-915a-e960228d5a1e')) Select Id From MyTable Where uuid = PackUUID('88db0c40-0a2e-102c-915a-e960228d5a1e') // Использование функций платформы (Insert Into MyTable(uuid) Values(:PackUUID('88db0c40-0a2e-102c-915a-e960228d5a1e'))); (Select Id From MyTable Where Uuid = :PackUUID('88db0c40-0a2e-102c-915a-e960228d5a1e')); Blob := PackUUID('88db0c40-0a2e-102c-915a-e960228d5a1e'); (Select Id From MyTable Where Uuid = :Blob);
Для преобразования UUID из BLOB обратно в строку предназначена SQL-функция UnpackUUID.
Пример:// Использование функции UnpackUUID базы данных Select UnpackUUID(uuid) From MyTable // Использование функции UnpackUUID платформы Dataset1 := (Select Uuid From Table2); Foreach E In Dataset1 Do Warning(UnpackUUID(E.Guid));
SQL-функции PackUUID и UnpackUUID возможно работают медленне, чем функции платформы PackUUID, UnpackUUID.