微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在PostgreSQL 8.4中安装其他模块多维数据集时出现问题

我正在使用Postgresql与“七周数据库”七本书.我在Ubuntu 10.04服务器上使用Postgresql 8.4.1.

一个任务是创建一个名为“book”的数据库,并检查contrib包是否已正确安装.

$createdb book
$psql book -c "SELECT '1'::cube;"

当我这样做,我得到以下输出

ERROR:  type "cube" does not exist
LINE 1: SELECT '1'::cube;

我已经使用以下命令安装了多维数据集包:

$sudo -u postgres psql postgres < /usr/share/postgresql/8.4/contrib/cube.sql

我尝试重新启动Postgresql,但问题仍然存在.当我第二次尝试运行包导入时,我收到以下消息,其中明确指出类型“cube”已经存在:

SET
CREATE FUNCTION
CREATE FUNCTION
CREATE FUNCTION
CREATE FUNCTION
ERROR:  type "cube" already exists
COMMENT
CREATE FUNCTION
COMMENT
CREATE FUNCTION
COMMENT
CREATE FUNCTION
COMMENT
CREATE FUNCTION
COMMENT
CREATE FUNCTION
COMMENT
CREATE FUNCTION
COMMENT
CREATE FUNCTION
COMMENT
CREATE FUNCTION
COMMENT
CREATE FUNCTION
COMMENT
CREATE FUNCTION
COMMENT
CREATE FUNCTION
CREATE FUNCTION
CREATE FUNCTION
CREATE FUNCTION
CREATE FUNCTION
CREATE FUNCTION
CREATE FUNCTION
CREATE FUNCTION
CREATE FUNCTION
CREATE FUNCTION
CREATE FUNCTION
CREATE FUNCTION
CREATE FUNCTION
CREATE FUNCTION
ERROR:  operator < already exists
ERROR:  operator > already exists
ERROR:  operator <= already exists
ERROR:  operator >= already exists
ERROR:  operator && already exists
ERROR:  operator = already exists
ERROR:  operator <> already exists
ERROR:  operator @> already exists
ERROR:  operator <@ already exists
ERROR:  operator @ already exists
ERROR:  operator ~ already exists
CREATE FUNCTION
CREATE FUNCTION
CREATE FUNCTION
CREATE FUNCTION
CREATE FUNCTION
CREATE FUNCTION
CREATE FUNCTION
ERROR:  operator class "cube_ops" for access method "btree" already exists
ERROR:  operator class "gist_cube_ops" for access method "gist" already exists

那么我做错了什么?

您只将扩展名安装到您的postgres数据库(名为“postgres”的认系统数据库) – 这可能不是您想要的.您需要将扩展​​名安装到数据库中,每个数据库将使用它.

或者您可以将其安装到模板数据库(认情况下为template1,但是可以将任何数据库用作模板),以便每个新创建的数据库都从预先安装的功能开始.

在Postgresql 8.4或更新版本中,您需要在shell中运行:

psql -d dbname -f SHAREDIR/contrib/cube.sql

其中dbname是实际目标数据库名称.或使用您在问题中的等效线.
More info for PostgreSQL 8.4 in the manual here.

因为Postgresql 9.1这个进一步简化了,你可以在数据库会话中运行:

CREATE extension cube

More in the manual here.

原文地址:https://www.jb51.cc/postgresql/192196.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐