我正在使用Ubuntu 10.04运行PostgreSQL 8.4.4。
我正在尝试生成uuid但无法找到方法。
我在/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.
有什么想法吗?
答案 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;