相当于这个基于UUID的函数的Postgresql

问题描述 投票:0回答:1

我正在评估PostgreSQL的新项目,否则我们将使用MySql。我在MySql中生成了这些类型的ID,这是一个翻转的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()和unhex()函数将它们转换为binary(16),或将其转换为binary(16),以便将该字段所需的存储量减半。

如果您好奇,所有这些都记录在这里:

https://www.percona.com/blog/2014/12/19/store-uuid-optimized-way/

但是...我要寻找的是Postgres的等效功能。截止到今天,我是100%的新手。

sql database postgresql function uuid
1个回答
0
投票

Postgres不需要此hack。它具有本机数据类型uuid,仅需要16个字节即可存储UUID值。

© www.soinside.com 2019 - 2024. All rights reserved.