2016-08-27 15 views
0

これはColumn data types for materialized views?と似ていますが、データ型だけでなく、さらにデータが必要です。テーブル/ビューではなく、マテリアライズドビューで行うクエリと同じ種類のクエリを使用したいと思います。PostgreSQL - マテリアライズドビューの列メタデータを取得

SELECT column_name, data_type, character_maximum_length, 
     character_octet_length, numeric_precision, numeric_precision_radix, 
    numeric_scale, datetime_precision, interval_type, interval_precision 
    FROM information_schema.columns 
    WHERE table_schema = '{}' 
    AND table_name = '{}' 
    order by ordinal_position 

このような人はいますか? pg_attributeの列名は非常にわかりにくいです。

答えて

5

psql-E(「エコー隠しクエリ」)オプションを指定して実行すると、この種の質問を簡単に取得できます。

次のクエリは、あなたが欲しいものを行う必要があります。

SELECT a.attname, 
     pg_catalog.format_type(a.atttypid, a.atttypmod), 
     a.attnotnull 
FROM pg_attribute a 
    JOIN pg_class t on a.attrelid = t.oid 
    JOIN pg_namespace s on t.relnamespace = s.oid 
WHERE a.attnum > 0 
    AND NOT a.attisdropped 
    AND t.relname = 'mv_name' --<< replace with the name of the MV 
    AND s.nspname = 'public' --<< change to the schema your MV is in 
ORDER BY a.attnum; 
+0

@a_horse_with_no_nameこんにちは、あなたはこのクエリを取得するために使用される完全なコマンドを共有することがとても親切だろうか? –

+1

@AndreyVykhodtsev:私が書いたように 'psql'を' -E'オプションで実行し、 '\ d mv_name'を使って列を表示します。 –

関連する問題