关于PostgreSQL的UUID类型和函数
建站教程 2021-03-17 09:41 3050

PostgreSQL UUID或通用唯一标识符由RFC 4122指定,并且具有128位长度。内部算法用于构造UUID,并且每个值都是不同的。PostgreSQL有自己的UUID数据类型,并使用模块生成它们。UUID数据类型通常在分布式数据库中废弃,因为该数据类型可确保奇异性,而不是SERIAL类型,后者仅可在单个数据库内生成奇异值。尽管PostgreSQL允许您保存和对比UUID值,但该内核没有用于创建它们的方法。相反,它依赖于具有特定UUID生成算法的第三方程序包。

现在让我们看一下UUID值的某些表示形式,如下图所示。UUID由32位十六进制数字和最多四个连字符组成,如下图所示。UUID的值也可以为0,这意味着所有位均为空。

在PostgreSQL pgAdmin 4 GUI中创建UIID

打开PostgreSQL'pgAdmin 4'图形用户界面。接下来,通过输入用户名的密码,将用户“ postgres”与服务器“ PostgreSQL 13”连接。点击“ok”确定按钮开始使用它。

“ uuid-ossp”软件包将使用CREATE EXTENSION指令安装在“test”测试数据库中。如果您正确地遵循以下提供的说明,您将收到“CREATE EXTENSION”创建扩展消息,如下图所示。在以下命令中,“ IF NOT EXISTS”条件被消除,这使我们可以停止重新安装软件包。

>> CREATE EXTENSION IF NOT EXISTS “uuid-ossp”;

在“Extensions”选项中,您可以看到新安装的“uuid-ossp”软件包。

以下是与“test”测试数据库中已安装uuid-ossp软件包相关的功能的列表:

“ uuid_generate_v1()”方法可用于生成UUID值,并根据当前时间戳生成MAC地址集合,该值也是任意值。当以下指令在查询工具区域中运行时,我们将获得后续输出。这将显示“uuid_generate_v1()”方法生成的UUID值,如下面的快照所示。

>> SELECT uuid_generate_v1();

在PostgreSQL pgAdmin 4 GUI中创建UIID

打开您的PostgreSQL命令行shell,并通过提供其名称并单击Enter,将其与localhost服务器或您要连接的任何其他服务器连接。您可以通过在“Database”数据库行中写入数据库名称来更改数据库。如您所见,我们正在使用“test”测试数据库。您也可以更改端口号和用户名以进行切换。之后,将要求您输入所选用户的密码。提供密码后,您就可以开始使用了。如果您不想在此处进行任何更改,请保留空白。

可以使用CREATE EXTENSION查询挂载“uuid-ossp”捆绑包。在PostgreSQL的命令外壳中编写以下命令,您将获得随后的“ CREATE EXTENSION”消息。我们还取消了“ IF NOT EXISTS”子句,该子句允许我们停止重新安装捆绑软件。

>> CREATE EXTENSION IF NOT EXISTS “uuid-ossp”

“uuid_generate_v1()”函数将用于根据当前时间戳,MAC地址组和偶然性值来构建UUID值。通过在查询空间中执行以下查询,您将获得后续输出,该输出显示使用“ uuid_generate_v1()”方法创建的UUID值。

>> SELECT uuid_generate_v1();

如下所示,“ uuid_generate_v4()”方法可用于创建专门用偶然性数字建立的UUID值。这将产生如下输出。

>> SELECT uuid_generate_v4();

PostgreSQL UUID数据类型示例

本示例向您展示PostgreSQL UIID数据类型的运行方式。我们将使用CREATE命令构造一个单独的“ Client”表以及UUID字段。客户ID,客户名,客户姓氏,客户电子邮件ID和客户地址仅是“客户”表中的几列。我们一直在使用'Client_id'作为UUID数据类型,这也是主键。“ uuid_generate_v4()”方法还将动态生成主要的基本列值。在查询工具区域中尝试以下CREATE TABLE命令,以在安装了uuid-ossp模块的“测试”数据库中构造“客户端”表。您将收到“ CREATE TABLE”消息,这表示该表已正确创建。

当您添加新行而不指定“Client_id field”值时,PostgreSQL可以使用“ uuid_generate_v4()”方法产生一个“ Client_id”值。使用INSERT指令,我们将在其中输入几个值。执行以下指令后,将出现以下响应屏幕,表明所声明的值已有效地合并到“Client”客户表中。

现在,我们将使用查询编辑器工具中的SELECT查询来获取“Client”客户表的所有记录。执行以下提供的指令后,您将获得以下输出,该指令将在Client表中显示所有或大多数信息。“ Client_id”字段将由“ uuid_generate_v()”方法生成的UUID值占据,如下图所示。

>> SELECT * FROM Client;

总结

本文使用PostgreSQL pgAdmin 4图形用户界面和命令行shell涵盖了PostgreSQL UUID数据类型部分的要点,包括以下内容:

列的所得UUID值存储在PostgreSQL UUID数据类型中。

要构建UUID值,必须使用CREATE Extension查询来输入uuid-ossp软件包实用程序。

您可能需要“ uuid_generate_v4()”功能来动态提取表特定列的UUID结果。

希望您在PostgreSQL中处理UUID类型和函数时不会遇到任何问题。

标签:

  • PostgreSQL