在Postgres中为Insert语句生成UUID?

我的问题很简单。我知道UUID的概念,我想生成一个UUID来引用数据库中“存储”中的每个“项目”。似乎合理,对吗

问题是以下行返回错误:

honeydb=#插入到项目值中(
uuid_generate_v4(),54.321,31,'desc 1',31.94);
错误:函数uuid_generate_v4()不存在
第2行:uuid_generate_v4(),54.321,31,'desc 1',31.94);
^
提示:没有与给定名称和参数类型匹配的函数。您可能需要添加显式类型转换。

我已在以下位置阅读了该页面:http://www.postgresql.org/docs/current/static/uuid-ossp.html

我在Ubuntu 10.04 x64上运行Postgres 8.4

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

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

如果不存在,则创建扩展“uuid ossp”;

但是对于9.0及以下版本,您必须运行SQL脚本来加载扩展。请参阅8.4中有关contrib模块的文档

对于第9.1页及更高版本,请阅读当前的contrib文档和创建扩展名。这些功能在9.0或旧版本(如8.4)中不存在

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

发表评论