成功安装扩展 uuid-ossp 后,我无法执行 uuid_generate_v5 函数。总是提示不存在或错误的参数类型。
选择uuid_generate_v5(uuid('40f209ac-33f7-11ea-978f-2e728ce88125'),cast('1234'作为文本));
输出: uuid_generate_v5(uuid,文本) 错误:函数 uuid_generate_v5(uuid, text) 不存在 提示:没有函数与给定的名称和参数类型匹配。您可能需要添加显式类型转换。
从 pg_proc 中选择 *,其中 proname= 'uuid_generate_v5';表明该函数确实存在,我一定以某种方式错误地使用了它,但根据记录的函数和源代码,arg 类型是正确的...
x86_64-pc-linux-gnu 上的 PostgreSQL 11.1,由 gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-28) 编译,64 位
最佳答案
扩展(以及函数)安装在不在您的 search_path
上的架构中。
尝试
\dx "uuid-ossp"
这将向您显示安装扩展程序的架构。
在函数名称中包含架构限定:
SELECT extschema.uuid_generate_v5('40f209ac-33f7-11ea-978f-2e728ce88125', '1234');
或将扩展架构添加到search_path
。
关于postgresql - 无法执行uuid_generate_v5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59724547/