我的问题很简单.我知道UUID的概念,我想生成一个UUID来引用数据库中"存储"中的每个"项目".看起来很合理,对吧?

问题是以下行返回错误:

honeydb=# insert into items values(
uuid_generate_v4(), 54.321, 31, 'desc 1', 31.94);
ERROR:  function uuid_generate_v4() does not exist
LINE 2: uuid_generate_v4(), 54.321, 31, 'desc 1', 31.94);
        ^
HINT:  No function matches the given name and argument types. You might need to add explicit type casts.

我已经读了http://www.postgresql.org/docs/current/static/uuid-ossp.html页了

在此处输入图像描述

我在Ubuntu 10.04 x64上运行Postgres 8.4.

推荐答案

uuid-ossp是contrib模块,因此默认情况下不会加载到服务器中.必须将其加载到数据库中才能使用.

对于现代PostgreSQL版本(9.1及更新版本),这很简单:

CREATE EXTENSION IF NOT EXISTS "uuid-ossp";

但是对于9.0及以下版本,您必须运行SQL脚本来加载扩展.见the documentation for contrib modules in 8.4.

对于第9.1页及更新版本,改为the current contrib docsCREATE EXTENSION页.这些功能在9.0或更早的版本中不存在,比如8.4.

如果您使用的是打包版本的PostgreSQL,则可能需要安装包含contrib模块和扩展的单独软件包.在package manager数据库中搜索"postgres"和"contrib".

Postgresql相关问答推荐

即使密码更改,也可以访问Docker Postgresql数据库

如何在gorm中创建一个可读但不可写的字段

Postgr不列出运算符和函数

Haskell仆人发布FormUrlEncode for(向量字符串)字段

在PostgreSQL中,`MY_VARIABLE IN(<;Long_ARRAY_of_Items>;)`何时是FAST?

supabase 中的交易

PostgreSQL:在 select 和 group by 中使用不同的列不会导致错误

订阅标签保存在哪个表中?

postgresql查询中的正则表达式不区分大小写

如何从 .sql postgresql 备份恢复单个表?

在 postgres 中Decode解码相似的函数

Docker Compose + Spring Boot + Postgres 连接

从 Select 中创建一个临时表,如果表已经存在则插入

从 PostgreSQL 中的时间戳获取日期

Postgres NOT IN (null) 没有结果

在 MAC OS X 10.6 for PostgreSQL 上设置 SHMMAX 等值

postgresql 查询以显示用户的组

使用 Postgresql 在过滤器中制作 Sqlalchemy 使用日期

如何从我的 postgresql 查询中获取最小值、中值和最大值?

Capistrano 与 PostgreSQL,错误:database is being accessed by other users