目录
一、现象:
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才可以使用该方法。
三、解决方法:
1.安装uuid-ossp扩展依赖环境
可使用编译安装或Yum安装,因为我这里的环境是Postgres10,yum安装,因此优先选择yum安装扩展。
yum install -y postgresql10-contrib
2.启用uuid-ossp扩展
postgres=# create extension "uuid-ossp" ;
CREATE EXTENSION
3.验证
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 行记录)