在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