如何从psql中列出已经安装在数据库或模式中的所有扩展?
另请参阅
查找PostgreSQL附带的可用扩展列表
如何从psql中列出已经安装在数据库或模式中的所有扩展?
另请参阅
查找PostgreSQL附带的可用扩展列表
当前回答
下面的查询输出已安装扩展及其版本的列表:
SELECT oid, extname, extversion FROM pg_extension;
oid | extname | extversion |
---|---|---|
13763 | plpgsql | 1.0 |
18536 | http | 1.5 |
22466 | dict_xsyn | 1.0 |
如果你想知道还有哪些扩展和它们的版本可供安装,运行下面的查询:
SELECT name, default_version, installed_version
FROM pg_available_extensions;
name | default_version | installed_version |
---|---|---|
dict_xsyn | 1.0 | 1.0 |
seg | 1.4 | NULL |
pgcrypto | 1.3 | NULL |
plpgsql | 1.0 | 1.0 |
要安装一个扩展(如果它不存在),运行以下查询:
CREATE EXTENSION [ IF NOT EXISTS ] extension_name;
要将扩展升级到新版本,请使用以下查询:
ALTER EXTENSION extension_name UPDATE TO 'new_version';
其他回答
这个SQL查询的输出类似于\dx:
SELECT e.extname AS "Name", e.extversion AS "Version", n.nspname AS "Schema", c.description AS "Description"
FROM pg_catalog.pg_extension e
LEFT JOIN pg_catalog.pg_namespace n ON n.oid = e.extnamespace
LEFT JOIN pg_catalog.pg_description c ON c.objoid = e.oid AND c.classoid = 'pg_catalog.pg_extension'::pg_catalog.regclass
ORDER BY 1;
感谢https://blog.dbi-services.com/listing-the-extensions-available-in-postgresql/
另外,如果你想知道哪些扩展在你的服务器上可用:SELECT * FROM pg_available_extensions。
请参见pg_available_extensions和pg_available_extension_versions。
在psql中就是这样
\dx
具体请参见psql手册。
在纯SQL中,它将是pg_extension上的一个选择:
SELECT *
FROM pg_extension;
只是一个注释,你是否运行如上所述,在psql中
\dx
or
select extname from pg_extension ;
请记住
确保连接到正确的数据库。由于您的扩展是特定于数据库的加载。 根据定义,添加到template1数据库的任何扩展都将出现在所有数据库上。
下面的查询输出已安装扩展及其版本的列表:
SELECT oid, extname, extversion FROM pg_extension;
oid | extname | extversion |
---|---|---|
13763 | plpgsql | 1.0 |
18536 | http | 1.5 |
22466 | dict_xsyn | 1.0 |
如果你想知道还有哪些扩展和它们的版本可供安装,运行下面的查询:
SELECT name, default_version, installed_version
FROM pg_available_extensions;
name | default_version | installed_version |
---|---|---|
dict_xsyn | 1.0 | 1.0 |
seg | 1.4 | NULL |
pgcrypto | 1.3 | NULL |
plpgsql | 1.0 | 1.0 |
要安装一个扩展(如果它不存在),运行以下查询:
CREATE EXTENSION [ IF NOT EXISTS ] extension_name;
要将扩展升级到新版本,请使用以下查询:
ALTER EXTENSION extension_name UPDATE TO 'new_version';