我的问题很简单。我知道 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是一个贡献模块,因此默认情况下它不会加载到服务器中。您必须将其加载到数据库中才能使用它。
uuid-ossp
对于现代 PostgreSQL 版本(9.1 和更高版本),这很容易:
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
但对于 9.0 及以下版本,您必须改为运行 SQL 脚本来加载扩展。请参阅8.4 中有关 contrib 模块的文档。
对于 Pg 9.1 和更新版本,请阅读当前的 contrib 文档和CREATE EXTENSION. 这些功能在 9.0 或更早版本中不存在,例如您的 8.4。
CREATE EXTENSION
如果您使用的是 PostgreSQL 的打包版本,您可能需要安装一个包含 contrib 模块和扩展的单独包。在您的包管理器数据库中搜索“postgres”和“contrib”。