Як за допомогою psql перерахувати розширення, встановлені в базі даних?


Відповіді:


363

У psql це було б

\dx

Детальну інформацію див. У посібнику: http://www.postgresql.org/docs/current/static/app-psql.html

Зробити це в простому SQL, це буде вибір на pg_extension:

SELECT * 
FROM pg_extension

http://www.postgresql.org/docs/current/static/catalog-pg-extension.html


@SoichiHayashi: тоді ви, ймовірно, використовуєте стару версію Postgres
a_horse_with_no_name

Я запускаю PostgreSQL-сервер 9.3.5, але я використовую клієнт psql 8.4.20, що постачається з CentOS 6.5. Можливо, мені потрібно встановити останню версію psql?
Soichi Hayashi

@SoichiHayashi \dx - це команда psql, яка була введена з 9.0 при create extensionвипуску функції. Так, так, вам також потрібно оновити свій текст psql(ви завжди повинні використовувати psqlверсію, яка відповідає вашій версії БД)
a_horse_with_no_name

1
Як іронічно. stackoverflow.com/questions/9463318/… Один із зауважень, що такі питання (і загальна нездатність робити дійсно важкі речі, такі як \?) будуть дратувати a_horse_with_no_name: D. Для справедливості ця відповідь містить іншу корисну інформацію.
Джон Пауелл

11
Ви можете, можливо, згадати повний запит SQL для списку:select * from pg_extension
icl7126

82

Крім того, якщо ви хочете знати, які розширення доступні на вашому сервері: SELECT * FROM pg_available_extensions


5

Цей запит 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/

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.