PostgreSQL UUID


PostgreSQL UUID

在本节中,我们将了解PostgreSQL UUID 数据类型的工作原理。我们还看到了UUID 数据类型的**示例我们还看到了一些如何在提供的模块的帮助下创建 UUID 值的方法。

什么是 PostgreSQL UUID 数据类型?

在 PostgreSQL 中,下一个数据类型是Universally Unique Identifier,它也称为UUID,RFC 4122和另一个连接标准指定。

UUID值是由算法产生的128位长的值,使得它在已知的唯一的宇宙有一个类似的算法来识别信息的帮助。

让我们看一些 UUID 值的示例示例,如下图所示:

6ecd8c99-4036-403d-bf84-cf8400f67836  
c81d4e2e-bcf2-11e6-869b-7df92533d2db  
237e9877-e79b-12d4-a765-321741963000

正如我们可以在上述实例中看到的,一个UUID是的布置32个位数十六进制数字连同4个连字符( - )。UUID 可能为零,其中所有位都设置为零

我们经常在分布式系统中识别 UUID,因为它具有独特的功能。与在单个数据库中创建唯一值的 PostgreSQL SERIAL 数据类型相比,它还确保了更好的个性化。

注意:在 PostgreSQL 数据库中,我们可以使用 UUID 数据类型来存储 UUID 值并提供生成它们的模块。

如何在 PostgreSQL 中创建 UUID 值

PostgreSQL 使我们能够存储和等同 UUID 值,但它不包含函数,并在其核心创建 UUID 值。

而不是依赖于提供特定算法来创建 UUID的第三方模块,例如uuid-ossp模块包含一些可访问的函数,这些函数执行用于创建 UUID 的标准算法。

我们将使用以下CREATE EXTENSION命令在Javatpoint数据库中安装uuid-ossp模块。

CREATE EXTENSION IF NOT EXISTS "uuid-ossp";

输出

执行上述命令后,我们将得到以下消息:已使用Create Extension命令成功安装了uuid_ossp

PostgreSQL UUID

我们在上面的命令中使用了IF NOT EXISTS子句,它为我们提供了避免重新安装模块的方法。

我们可以使用uuid_generate_v1() 函数根据当前时间戳、计算机 MAC 地址的分组和随机值来创建 UUID 值:

SELECT uuid_generate_v1();

输出

执行上述命令,我们将得到以下结果,其中显示了uuid_generate_v1() 函数创建的 UUID 值

PostgreSQL UUID

在下面的命令中,我们将使用uuid_generate_v4()函数创建一个唯一依赖于随机数的 UUID 值:

SELECT uuid_generate_v4();

输出

成功执行上述命令后,我们将得到如下结果,其中显示了uuid_generate_v1() 函数创建的 UUID 的值

PostgreSQL UUID

PostgreSQL UUID 数据类型示例

让我们看一个示例以了解PostgreSQL UUID 数据类型的工作原理。

我们正在使用 CREATE 命令的帮助创建一个新表作为Client\UUID 列,并使用 INSERT 命令插入一些值。

Client\表包含各列如CLIENT_ID,client_first_name,client_last_name,client_email_id和CLIENT_ADDRESS。

对于client_id列,我们使用UUID 数据类型,它也是主键。此外,主要的基本列值将使用uuid_generate_v4()函数自动创建。

在 Javatpoint类似的数据库中创建一个Client\我们在其中安装uuid_ossp 模块,我们使用CREATE命令,如下面的命令所示:

CREATE TABLE Client (  
    Client_id uuid DEFAULT uuid_generate_v4 (),  
    client_first_name VARCHAR NOT NULL,  
    client_last_name VARCHAR NOT NULL,  
    client_email_id VARCHAR NOT NULL,  
    Client_address VARCHAR,  
    PRIMARY KEY (Client_id)  
);

输出

在执行上述命令时,我们将收到以下消息,显示Client\表已成功创建。

PostgreSQL UUID

在上面的命令中,我们为Client_id列使用了 UUID 数据类型,其中Client_id列具有由uuid_generate_v4()函数给出的默认值。

因此,如果我们在没有定义Client_id列的值的情况下插入新行,PostgreSQL 将调用uuid_generate_v4()函数来创建Client_id值。

Client\成功创建表,我们将插入一些值与INSERT**命令的帮助。

INSERT INTO Client (client_first_name, client_last_name,   
client_email_id, Client_address)  
VALUES('Mike','Ross', 'ross.mike@hotmail.com','Houston'),  
('Hannah','Garcia','hannahgarcia@gmail.com','San Diego'),  
('Maria ','Hernandez','Maira.hernandez@gmail.com','Seattle'),  
('Robert','Smith','smith.robert@hotmail.com','Dallas');

输出

执行上述命令后,我们会得到如下消息窗口,显示指定的值已成功插入到Client\表中。

PostgreSQL UUID

创建并插入Client\表的值后,我们将使用SELECT命令返回Client表的所有行:

SELECT *  
FROM Client;

输出

成功执行上述命令后,我们将得到以下输出,其中显示了Client\表中存在的所有数据:

PostgreSQL UUID

正如我们在上面的屏幕截图中看到的,Client_id列已由uuid_generate_v4() 函数创建的UUID 值填充。

概述

PostgreSQL UUID 数据类型部分,我们学习了以下主题:

  • PostgreSQL的UUID数据类型被用来存储UUID值指定列。
  • 我们可以使用CREATE Extension命令安装 uuid-ossp 模块来创建 UUID 值。
  • 我们可以使用uuid_generate_v4() 函数自动检索表特定列的 UUID 值。