在PostgreSQL(使用SQL,而不是控制檯),我怎麼能列出所有可用datataypes?
還應列出用戶定義的類型,如果有的話。
就像您在pgAdmin3中定義表中新列的數據類型的列表一樣。
在PostgreSQL(使用SQL,而不是控制檯),我怎麼能列出所有可用datataypes?
還應列出用戶定義的類型,如果有的話。
就像您在pgAdmin3中定義表中新列的數據類型的列表一樣。
「數據類型」中的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;
**************************
select * from pg_type;
你要列出您的特定數據庫中的所有類型的,或者說是在繳費Postgres的所有數據類型? – Borys 2013-05-02 18:51:30