在PostgreSQL中,下一个数据类型是 Universally Unique Identifier (通用唯一标识符),也称为 UUID ,由 RFC 4122 和另一个连接的标准指定。
UUID 值是由算法创建的128位长值,借助类似的算法来识别信息,从而使其在已知的 universe 中是唯一的。
让无涯教程查看UUID值的一些示例示例,因为无涯教程可以在下面的表示中看到:
6ecd8c99-4036-403d-bf84-cf8400f67836 c81d4e2e-bcf2-11e6-869b-7df92533d2db 237e9877-e79b-12d4-a765-321741963000
从上面的示例中可以看到,UUID是 32位的十六进制数字和四个连字符(-)的排列。 UUID可能为 nil ,其中所有位均设置为零。
PostgreSQL使无涯教程能够存储和等价UUID值,但它不包含函数,并在其核心中创建UUID值。
而不是依赖提供特定算法来创建UUID的第三方模块,例如 uuid-ossp 模块包含一些可访问的函数,这些函数执行标准用于创建UUID的算法。
无涯教程将使用以下 CREATE EXTENSION 创建扩展名命令在 数据库中安装 uuid-ossp 模块。
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
实施上述命令后,无涯教程将收到以下消息: uuid_ossp 已通过 Create Extension 命令成功安装。
无涯教程在上面的命令中使用了 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值。
在CREATE命令的帮助下,无涯教程创建一个新表作为 Client 和 UUID列,并使用INSERT命令。
Client 表包含各个列,例如 Client_id,client_first_name,client_last_name,client_email_id和client_address。
对于 client_id 列,无涯教程使用 UUID数据类型,它也是主键。此外,主基本列值将使用 uuid_generate_v4()函数自动创建。
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()给出的默认值函数。
因此,PostgreSQL将调用 uuid_generate_v4()函数,以创建 client_id 值,如果无涯教程插入一个新行而不定义 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 表中存在的所有数据:
正如无涯教程在上面的屏幕截图中所看到的, Client_id 列已由 uuid_generate_v4()函数创建的 UUID值填充。
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)