生成されたシーケンスの場合、「所有」列が自動的に定義されるため、それが際立った要因になる可能性があります。
ただし、これは手動でも行うことができるため、次の違いを見分ける方法はありません。
create table foo (
id_col serial not null
);
と
create table foo (
id_col integer not null
);
create sequence foo_id_col_seq owned by foo.id_col;
しかし、それでも問題ない場合は、次のステートメントでその情報を取得できます。
SELECT s.relname as sequence_name,
t.relname as related_table,
a.attname as related_column,
d.deptype
FROM pg_class s
JOIN pg_depend d ON d.objid = s.oid
LEFT JOIN pg_class t ON d.refobjid = t.oid
LEFT JOIN pg_attribute a ON (d.refobjid, d.refobjsubid) = (a.attrelid, a.attnum)
WHERE s.relkind = 'S';
そのクエリによって、シーケンスごとに少なくとも 1 つの行が取得されます。つまり、それが作成されたスキーマへの依存関係です。
列が所有するシーケンスの場合、それが属するテーブルと列を含む別の行が取得されます。