如何在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; 

你现在应该有crosstabfunction。

我不必重新启动。