我的问题很简单。我知道UUID的概念,我想生成一个引用UDB的“存储”中的每个“项目”。看起来合理吧?
问题是以下行返回错误:
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。
对于Pg 9.1及更高版本,请阅读the current contrib docs和
CREATE EXTENSION
。这些功能在9.0或更早的版本(例如8.4)中不存在。如果您使用的是PostgreSQL的打包版本,则可能需要安装包含contrib模块和扩展名的单独软件包。在软件包管理器数据库中搜索“postgres”和“contrib”。
关于postgresql - 在Postgres中为插入语句生成UUID?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12505158/