如何获取所有对象的列表? - PostgreSQL

Rad*_*Hex 6 sql database postgresql

我需要db中包含的对象列表:表,序列等...


获取表格列表是我唯一能够找到的.


我能用什么来获取一切的想法?

Red*_*ter 10

您可以使用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'
);
Run Code Online (Sandbox Code Playgroud)

列表触发器

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');
Run Code Online (Sandbox Code Playgroud)