我正在为新项目评估PostgreSQL,否则我们会使用MySql。我在MySql中生成这些类型的ID,MySql是一个翻转的V1 GUID:
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((和unxx((函数将它们转换为二进制(16(,以便将字段所需的存储量减半。
如果你好奇的话,所有这些都记录在这里:
https://www.percona.com/blog/2014/12/19/store-uuid-optimized-way/
但是。。。我要找的是Postgres的等价函数。从今天起,我是100%的新手。
Postgres不需要此破解。它有一个本地数据类型uuid
,存储UUID值只需要16个字节。