📜  PostgreSQL UUID

📅  最后修改于: 2020-11-30 07:43:53             🧑  作者: Mango

PostgreSQL UUID

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

什么是PostgreSQL UUID数据类型?

在PostgreSQL中,下一个数据类型是通用唯一标识符,也称为RFC 4122和另一个连接的标准指定的UUID。

UUID值是由算法创建的128位长值,借助类似的算法来识别信息,从而使其在已知的Universe中是唯一的。

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

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

从上面的示例中可以看到,UUID是由32位十六进制数字四个连字符(-)组成的。 UUID可以为nil ,其中所有位均设置为零

我们经常在分布式系统中识别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";

输出量

实施上述命令后,我们将获得以下消息: uuid_ossp已使用“创建扩展名”命令成功安装。

我们在上面的命令中使用了IF NOT EXISTS子句,这避免了重新安装模块。

我们可以使用uuid_generate_v1()函数来创建UUID值,具体取决于当前时间戳,计算机的MAC地址分组和随机值:

SELECT uuid_generate_v1();

输出量

执行上述命令后,我们将获得以下结果,该命令显示由uuid_generate_v1()函数创建的UUID值

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

SELECT uuid_generate_v4();

输出量

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

PostgreSQL UUID数据类型示例

让我们看一个示例示例,以了解PostgreSQL UUID数据类型如何工作。

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

客户端表包含各种列,例如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表已成功创建。

在上面的命令中,我们为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表中。

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

SELECT *
FROM Client;

输出量

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

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

总览

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

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