PostgreSQL命令显示实体关系

时间:2013-01-31 00:12:35

标签: postgresql psql

一开始我想指出我不是,我从来不是数据库管理员。我有关于PL/SQLSQL的经验和知识,但到目前为止我接触到的每个数据库最多有50个表,即使我手工制作,查找实体之间的关系也不是那么难。 br />
问题现在出现了,当我得到database超过300个表时,发现实体之间的关系并不容易。
设想表:

table person (
id serial PRIMARY KEY NOT NULL,
name varchar(45)
)

并自动生成序列:

person_id_seq


是否可以告诉我是否有任何命令可以返回使用person_id_seq的表格?

2 个答案:

答案 0 :(得分:4)

克林的回答 - 使用pg_depend是完全合理的,也是一种理智的方式。

我强烈建议您尝试使用SchemaSpy之类的工具来生成数据库映射和可视化。它会有很大的帮助,让你有机会了解这些关系,而不仅仅是逐一探索它们。

如果您需要使查询可移植,那么您可以使用information_schema而不是PostgreSQL特定的目录表。 This query可以生成一个可移植的外键关系列表 - 该查询是为MS SQL Server编写的,但在PostgreSQL上可以正常使用。

答案 1 :(得分:3)

请参阅pg_depend

select *, pg_describe_object(classid, objid, objsubid)
from pg_depend 
where refobjid = 'person_id_seq'::regclass