継承された列を取得するには、どのクエリを実装する必要がありますか? この包括的な投稿を読んでも、解決策は見つかりませんでした。
1 に答える
4
私の理解が正しければ、テーブル間の継承の一部である列の名前を知りたいでしょう。
SELECT nmsp_parent.nspname AS parent_schema,
parent.relname AS parent_table,
nmsp_child.nspname AS child_schema,
child.relname AS child_table,
column_parent.attname AS column_parent_name
FROM pg_inherits
JOIN pg_class parent ON pg_inherits.inhparent = parent.oid
JOIN pg_class child ON pg_inherits.inhrelid = child.oid
JOIN pg_namespace nmsp_parent ON nmsp_parent.oid = parent.relnamespace
JOIN pg_namespace nmsp_child ON nmsp_child.oid = child.relnamespace
JOIN pg_attribute column_parent ON column_parent.attrelid = parent.oid
WHERE column_parent.attnum > 0
AND column_parent.attname NOT ILIKE '%pg.dropped%';
このクエリは、階層の一部である列名を表示します。私はあなたが奉仕することを望みます
于 2012-02-07T14:56:31.707 に答える