函数gen_random_uuid()的PostgreSQL查询无法在Windows上运行

时间:2015-10-27 07:04:18

标签: postgresql pgcrypto

我有以下查询来创建表格,

CREATE TABLE IF NOT EXISTS company (
    id uuid CONSTRAINT companyid PRIMARY KEY DEFAULT gen_random_uuid(),
    name varchar(128) NOT NULL,
    db_uri varchar(255) NOT NULL,
    c_uri varchar(255) NOT NULL,
    date_c timestamp DEFAULT now(),
    date_m timestamp DEFAULT now()
    ) WITH (fillfactor=90);

当我通过pgAdminIII运行时,我收到以下错误。

ERROR:  function gen_random_uuid() does not exist
HINT:  No function matches the given name and argument types. You might need to add explicit type casts.
********** Error **********
ERROR: function gen_random_uuid() does not exist
SQL state: 42883
Hint: No function matches the given name and argument types. You might need to add explicit type casts.

我创建了一个扩展pgcrypto,因为它包含gen_random_uuid()函数定义,但也没有帮助。

我在MAC上运行相同的脚本,一切正常。

我正在使用PostgreSQL 9.3。

1 个答案:

答案 0 :(得分:1)

问题出在PostgreSQL版本上。

在PostgreSQL 9.4中,pgcrypto具有gen_random_uuid()功能。

安装了新版本,一切都很好!

http://www.postgresql.org/docs/9.3/static/pgcrypto.html

http://www.postgresql.org/docs/9.4/static/pgcrypto.html