2016-11-16 20 views
0

システムカタログの列の説明で使用されているデータ型の名前を取得しようとしています。システムカタログからデータ型を取得する

私はこの作業を正しく行っていますか?

select data_type 
from information_schema.columns 
group by data_type; 

ありがとうございました。

+0

私はDISTINCT Data_type'を選択し、 'GROUP BY'をドロップ'使用します。たとえば\dTSについては

はようなものになるだろう。この例では、同じことが返されますが、まったく別のものであるため、2つを混同しないでください。 – Siyual

答えて

0

好奇心から(ここにソースコードがあるので)私はピークを取り、\dT相当のクエリがdescribeTypessrc/bin/psql/describe.cに生成されていることを確認しました。

SELECT n.nspname AS "Schema", 
    pg_catalog.format_type(t.oid, NULL) as "Name", 
    pg_catalog.obj_description(t.oid, 'pg_type') as "Description" 
FROM pg_catalog.pg_type t 
    LEFT JOIN pg_catalog.pg_namespace n ON n.oid = t.typnamespace 
WHERE (t.typrelid = 0 OR (SELECT c.relkind = 'c' FROM pg_catalog.pg_class c WHERE c.oid = t.typrelid)) 
    AND NOT EXISTS(SELECT 1 FROM pg_catalog.pg_type el WHERE el.oid = t.typelem AND el.typarray = t.oid) 
    AND n.nspname <> 'information_schema' 
ORDER BY 1, 2; 
関連する問題