Я нахожусь в процессе оценки PostgreSQL для новых проектов, для которых мы иначе использовали бы MySql. Я генерирую эти типы идентификаторов в MySql, который является перевернутым GUID V1:
create function get_uuid() returns binary(16)
begin
return (
select unhex(concat(
substr(uuid(), 15, 4),
substr(uuid(), 10, 4),
substr(uuid(), 1, 8),
substr(uuid(), 20, 4),
substr(uuid(), 25))) as new_id
);
end;
Я бы тогда использовал функции mysql hex () и unhex () для преобразования их в / из двоичного кода (16), чтобы вдвое уменьшить объем памяти, необходимый для поля.
Все это задокументировано здесь, если вам интересно:
https://www.percona.com/blog/2014/12/19/store-uuid-optimized-way/
НО ... что я ищу, это эквивалентная функция для Postgres. Я на 100% новичок в этом, на сегодняшний день.