2010-10-01 4 views
5

мне нужен список объектов, включенных в БД: таблицы, последовательности и т.д. ...Как получить список всех объектов? - PostgreSQL


Получение списка таблиц было единственное, что я смог выяснить.


Любые идеи, что я мог бы использовать для того, чтобы получить все?

ответ

7

Вы можете сделать это, используя таблицы INFORMATION_SCHEMA, а также системный каталог.

http://www.alberton.info/postgresql_meta_info.html

Е.Г.,

Список последовательностях

SELECT relname 
FROM pg_class 
WHERE relkind = 'S' 
AND relnamespace IN (
    SELECT oid 
    FROM pg_namespace 
    WHERE nspname NOT LIKE 'pg_%' 
    AND nspname != 'information_schema' 
); 

Список Триггеры

SELECT trg.tgname AS trigger_name 
    FROM pg_trigger trg, pg_class tbl 
WHERE trg.tgrelid = tbl.oid 
    AND tbl.relname !~ '^pg_'; 
-- or 
SELECT tgname AS trigger_name 
    FROM pg_trigger 
WHERE tgname !~ '^pg_'; 

-- with INFORMATION_SCHEMA: 

SELECT DISTINCT trigger_name 
    FROM information_schema.triggers 
WHERE trigger_schema NOT IN 
     ('pg_catalog', 'information_schema'); 
Смежные вопросы