在 Postgres 中为 Insert 语句生成 UUID? [英] Generating a UUID in Postgres for Insert statement?

查看:67
本文介绍了在 Postgres 中为 Insert 语句生成 UUID?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

问题是以下行返回错误:

honeydb=# insert into items values(uuid_generate_v4(), 54.321, 31, 'desc 1', 31.94);错误:函数 uuid_generate_v4() 不存在第 2 行:uuid_generate_v4(), 54.321, 31, 'desc 1', 31.94);^提示:没有函数匹配给定的名称和参数类型.您可能需要添加显式类型转换.

我已阅读该页面:.

对于 Pg 9.1 和更新版本,请阅读 当前的 contrib 文档创建扩展.这些功能在 9.0 或更旧的版本中不存在,例如您的 8.4.

如果您使用的是 PostgreSQL 的打包版本,您可能需要安装一个单独的包,其中包含 contrib 模块和扩展.在您的包管理器数据库中搜索postgres"和contrib".

My question is rather simple. I'm aware of the concept of a UUID and I want to generate one to refer to each 'item' from a 'store' in my DB with. Seems reasonable right?

The problem is the following line returns an error:

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.

I've read the page at: http://www.postgresql.org/docs/current/static/uuid-ossp.html

I'm running Postgres 8.4 on Ubuntu 10.04 x64.

解决方案

uuid-ossp is a contrib module, so it isn't loaded into the server by default. You must load it into your database to use it.

For modern PostgreSQL versions (9.1 and newer) that's easy:

CREATE EXTENSION IF NOT EXISTS "uuid-ossp";

but for 9.0 and below you must instead run the SQL script to load the extension. See the documentation for contrib modules in 8.4.

For Pg 9.1 and newer instead read the current contrib docs and CREATE EXTENSION. These features do not exist in 9.0 or older versions, like your 8.4.

If you're using a packaged version of PostgreSQL you might need to install a separate package containing the contrib modules and extensions. Search your package manager database for 'postgres' and 'contrib'.

这篇关于在 Postgres 中为 Insert 语句生成 UUID?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆