在 PostgreSQL 中创建 UUID 自动生成字段
2023/12/26
在 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 的大版本号。