在 PostgreSQL 中创建 UUID 自动生成字段

在 PostgreSQL 中创建UUID自动生成字段与其它数据库不大一样,因为在 PostgreSQL 中虽然有 UUID 类型,但是想要数据库自动生成 UUID 类型的数据,则需要调用非标函数,也就是扩展中的函数。而扩展中的函数并不能直接调用,需要先引用(创建)指定的扩展包。生成 UUID 的函数gen_random_uuid()位于pgcrypto这个扩展包中。

CREATE EXTENSION IF NOT EXISTS pgcrypto;

CREATE TABLE "JsonWebToken"
(
	"Id" UUID PRIMARY KEY DEFAULT gen_random_uuid(),
	"Token" VARCHAR(2048) NOT NULL,
	"ExpireTime" TIMESTAMP NOT NULL,
	"UserName" VARCHAR(50) NOT NULL,
	"CreateTime" TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
);

注意:表名和列名都要加双引号,否则会被 postgresql 自动转成小写。TIMESTAMP等价于DateTime类型,它不包含时区,这也是常用的类型。

如果引用(创建)扩展时报错,则需要先安装这个包:

dnf install postgresql14-contrib

其中的14是当前 postgresql 的大版本号。