2013-05-02 65 views

回答

18

「數據類型」中的PostgreSQL實際上包括原始(內置)的類型,由擴展程序添加的類型,用戶定義的複合類型,域和表rowtypes。目前還不清楚哪些是你感興趣的。給定數據庫中可用的所有類型都列在該數據庫的pg_catalog.pg_type中,因此您可能需要過濾結果。見the documentation for the pg_type system catalog table

可用但未安裝的擴展的類型是而不是列出。沒有辦法列出未安裝在當前數據庫中的擴展提供的類型。

要獲得更漂亮的類型列表,請使用psql\dT *命令。您可以通過與-E標誌運行psql看到潛在的SQL此執行:

$ psql -E regress 
regress=> \dT * 
********* QUERY ********** 
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 pg_catalog.pg_type_is_visible(t.oid) 
ORDER BY 1, 2; 
************************** 
12
select * from pg_type; 

pg_type

+0

你要列出您的特定數據庫中的所有類型的,或者說是在繳費Postgres的所有數據類型? – Borys 2013-05-02 18:51:30

相關問題