目录
一、现象:
二、原因:
三、解决方法:
1.安装uuid-ossp扩展依赖环境
2.启用uuid-ossp扩展
3.验证
再次执行
schema=# select uuid_generate_v1(); ERROR: function uuid_generate_v1() does not exist 第1行select uuid_generate_v1(); ^ 提示: No function matches the given name and argument types. You might need to add explicit type casts. 时间:14.543 ms
默认情况,postgres 是没有uuid_generate_v1方法的,需要安装扩展,并使其启用uuid-ossp才可以使用该方法。
可使用编译安装或Yum安装,因为我这里的环境是Postgres10,yum安装,因此优先选择yum安装扩展。
yum install -y postgresql10-contrib
postgres=# create extension "uuid-ossp" ; CREATE EXTENSION
postgres-# \dx 已安装扩展列表 名称 | 版本 | 架构模式 | 描述 -----------+------+------------+------------------------------------------------- plpgsql | 1.0 | pg_catalog | PL/pgSQL procedural language uuid-ossp | 1.1 | public | generate universally unique identifiers (UUIDs)
更详细内容
postgres=# \dx+ 对象用于扩展 "plpgsql" 对象描述 --------------------------------------- 函数 plpgsql_call_handler() 函数 plpgsql_inline_handler(internal) 函数 plpgsql_validator(oid) 语言 plpgsql (4 行记录) 对象用于扩展 "uuid-ossp" 对象描述 ---------------------------------- 函数 uuid_generate_v1() 函数 uuid_generate_v1mc() 函数 uuid_generate_v3(uuid,text) 函数 uuid_generate_v4() 函数 uuid_generate_v5(uuid,text) 函数 uuid_nil() 函数 uuid_ns_dns() 函数 uuid_ns_oid() 函数 uuid_ns_url() 函数 uuid_ns_x500() (10 行记录)
postgres=# select uuid_generate_v1(); uuid_generate_v1 -------------------------------------- 9ffd8cc8-db44-11eb-8952-0050568a41b8 (1 行记录)