我正在尝试在PostgreSQL的表中创建UUID id。我已经尝试了以下方法:
id uuid PRIMARY KEY DEFAULT uuid_generate_v4()
但是我收到了以下错误信息:
错误:函数uuid_generate_v4()不存在 提示:没有函数与给定的名称和参数类型匹配。您可能需要添加显式类型转换。
我尝试加入模式,例如:id uuid PRIMARY KEY DEFAULT public.uuid_generate_v4()
(如此处评论中所述)
我还检查了扩展是否存在(SELECT * FROM pg_available_extensions;
),是的,我在PostgreSQL数据库中安装了它:
我了解到如果Postgres运行在--single
模式下,则此方法可能无法正常工作,但我不知道如何测试它或是否有任何方法可以测试它。
有人知道我该如何解决这个问题吗?或者还有其他选择吗? 像这样使用是一个好主意吗:
SET DEFAULT uuid_in(md5(random()::text || now()::text)::cstring);
pgcrypto
模块中的gen_random_uuid()
函数。 - Philip Tzouuuid-ossp
。 - Haleemur Aliuuid-ossp
安装到了不在搜索路径上的单独模式中了吗? - user330315