1

最初は、私はそうではなく、データベース管理者ではなかったことを指摘したいと思います。私は経験と知識を持っていPL/SQLますSQLが、これまでに触れた各データベースは最大50のテーブルであり、手動で作成したとしても、エンティティ間の関係を探すのはそれほど難しくありませんでした。

問題がdatabase発生しました。300を超えるテーブルがある場合、エンティティ間の関係を見つけるのはそれほど簡単ではありません。
テーブルを想像してみましょう:

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

そして自動的に私はシーケンスを持っています:

person_id_seq


使用しているテーブルを返すコマンドがあるかどうか教えてくださいperson_id_seq

4

2 に答える 2

5

pg_dependを参照してください。

select *, pg_describe_object(classid, objid, objsubid)
from pg_depend 
where refobjid = 'person_id_seq'::regclass
于 2013-01-31T00:22:04.847 に答える
4

クリンの答え-使用pg_dependは完全に賢明であり、これを行うための正しい方法です。

SchemaSpyのようなツールを試して、データベースマップと視覚化を作成することを強くお勧めします。それは大いに役立ち、関係を少しずつ探求するだけでなく、関係の概要を知る機会を与えてくれます。

クエリを移植可能にする必要がある場合はinformation_schema、PostgreSQL固有のカタログテーブルの代わりに使用できます。このクエリは、外部キー関係のリストを移植可能に生成します。クエリはMS SQL Server用に作成されていますが、PostgreSQLでは問題ありません。

于 2013-01-31T00:38:34.400 に答える