PostgreSQL | 生成UUID 报错:HINT: No function matches the given name and argument types

在PG数据库上新建表结构:

CREATE TABLE "public"."t_test" (
  "guid" uuid NOT NULL DEFAULT uuid_generate_v4(),
  "data" jsonb,
  "create_time" timestamptz(6) DEFAULT now(),
  CONSTRAINT "test_pkey" PRIMARY KEY ("guid")
);

报错:

ERROR: function uuid_generate_v4() does not exist
LINE 1: select uuid_generate_v4();
^
HINT: No function matches the given name and argument types.
You might need to add explicit type casts.


说明需要创建 uuid-ossp 扩展,执行命令

create extension "uuid-ossp";

这一步可能提示没有权限,那么需要更高权限的账号。


postgresql 官方文档说,如果只是使用随机的uuid, 建议使用 pgcrypto 扩展的 gen_random_uuid() 替代:

Note: If you only need randomly-generated (version 4) UUIDs, consider using the gen_random_uuid() function from the pgcrypto module instead.

– https://www.postgresql.org/docs/current/static/uuid-ossp.html

同样,创建扩展,然后使用命令

create extension "pgcrypto";

执行语句时可能会出现权限问题,扩展需要切换到权限高的账号创建。


欢迎关注公众号:慌途L
后面会慢慢将文章迁移至公众号,也是方便在没有电脑的情况下可以进行翻阅,更新的话会两边同时更新,大家不用担心!
PostgreSQL | 生成UUID 报错:HINT: No function matches the given name and argument types_第1张图片


你可能感兴趣的:(PostgreSQL,postgresql,uuid,uuid_generate,gen_random_uuid)