如何在Ubuntu 10.04上使用PostgreSQL 8.4.4生成uuid?

时间:2010-09-30 14:20:54

标签: postgresql ubuntu uuid ubuntu-10.04

我正在使用Ubuntu 10.04运行PostgreSQL 8.4.4。

我正在尝试生成uuid但无法找到方法。

我在/usr/share/postgresql/8.4/contrib/uuid-ossp.sql

中有uuid-ossp.sql

当我尝试这是我得到的:

postgres=# SELECT uuid_generate_v1();
ERROR:  function uuid_generate_v1() does not exist
LINE 1: SELECT uuid_generate_v1();
               ^
HINT:  No function matches the given name and argument types. You might need to add explicit type casts.

有什么想法吗?

2 个答案:

答案 0 :(得分:12)

contrib中的内容不会自动运行。您必须自己运行它才能安装这些功能。我不知道8.4版本,但在8.3版本中似乎只为每个数据库安装它,所以打开你在psql中使用的数据库并发出命令\i /usr/share/postgresql/8.4/contrib/uuid-ossp.sql

答案 1 :(得分:1)

我在PostgreSQL旅行中看到了这一点。它需要pgcrypto contrib模块。

CREATE OR REPLACE FUNCTION generate_uuid() RETURNS UUID AS
$$
SELECT ENCODE(GEN_RANDOM_BYTES(16), 'hex')::UUID
$$ LANGUAGE SQL IMMUTABLE;