如何在PostgreSQL 9.1+中导入模块或安装扩展?
首先,如果你不使用9.1+,请参考这个问题 。
如何安装PostgreSQL 9.1的扩展?
Postgrseql 9.1提供了一个新的命令CREATE EXTENSION
。 你应该使用它来安装模块。
9.1中提供的模块可以在这里find。 。 包括,
adminpack , auth_delay , auto_explain , btree_gin , btree_gist , chkpass , citext , cube , dblink , dict_int , dict_xsyn , dummy_seclabel , earthdistance , file_fdw , fuzzystrmatch , hstore , intagg , intarray , isn , lo , ltree , oid2name , pageinspect , passwordcheck , pg_archivecleanup , pgbench , pg_buffercache , pgcrypto , pg_freespacemap , pgrowlocks , pg_standby , pg_stat_statements , pgstattuple , pg_test_fsync , pg_trgm , pg_upgrade , seg , sepgsql , spi , sslinfo , tablefunc , test_parser , tsearch2 , unaccent , uuid-ossp , vacuumlo , xml2
例如,如果你想安装earthdistance
,只需使用这个命令:
CREATE EXTENSION earthdistance;
如果你想安装一个带有连字符的扩展名,比如uuid-ossp
,你需要用扩展名引起扩展名:
CREATE EXTENSION "uuid-ossp";
- 阅读有关contrib的更多信息,以及9.1中提供的模块 。
- 阅读有关新的扩展基础架构以及SQL命令以在此处进行pipe理您现在可以更轻松地卸载模块,请参阅
DROP EXTENSION
。 你也可以得到一个扩展名列表,并且对版本号有基本的支持。
虽然Evan Carrol的回答是正确的,但请注意,您需要安装postgresql contrib软件包才能使CREATE EXTENSION命令正常工作。
在Ubuntu 12.04中,它会这样:
sudo apt-get install postgresql-contrib
重新启动postgresql服务器:
sudo /etc/init.d/postgresql restart
所有可用的扩展名都在:
/usr/share/postgresql/9.1/extension/
现在你可以运行CREATE EXTENSION命令。
除了由核心PostgreSQL开发团队维护和提供的扩展外,还有第三方提供的扩展。 值得注意的是,有一个专门为此目的的网站: http : //www.pgxn.org/
进psqlterminal放:
\i <path to contrib files>
在ubuntu中它通常是/usr/share/postgreslq/<your pg version>/contrib/<contrib file>.sql
如果你有SUSE,如何下载和安装。 作为一个例子,我正在下载tablefunc模块,所以我可以使用交叉表。 我有PostgreSQL 9.6.1。
右键单击桌面,terminal,键入:
sudo zypper in postgreql-contrib
input凭据,请继续input:
y
运行查询(我从pgAdminIII运行):
CREATE EXTENSION tablefunc;
你现在应该有crosstab
function。
我不必重新启动。