5

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

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

我确实有 uuid-ossp.sql/usr/share/postgresql/8.4/contrib/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.

任何的想法 ?

4

2 回答 2

12

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

于 2010-09-30T14:27:12.450 回答
1

我在我的 PostgreSQL 游记中看到了这一点。它需要 pgcrypto contrib 模块。

CREATE OR REPLACE FUNCTION generate_uuid() RETURNS UUID AS
$$
SELECT ENCODE(GEN_RANDOM_BYTES(16), 'hex')::UUID
$$ LANGUAGE SQL IMMUTABLE;
于 2010-09-30T14:36:59.650 回答