问题:
在PostgreSQL中(使用SQL而不是控制台),如何列出所有可用的数据类型?
理想情况下,应该像这样: http://www.java2s.com/Code/PostgreSQL/Postgre-SQL/Displaysalldatatypesintheconnecteddatabasewithcomments.htm
它还应该列出用户定义的类型(如果有的话)。
就像在pgAdmin3中为表中的新列定义数据类型时所列出的列表一样。
问题:
在PostgreSQL中(使用SQL而不是控制台),如何列出所有可用的数据类型?
理想情况下,应该像这样: http://www.java2s.com/Code/PostgreSQL/Postgre-SQL/Displaysalldatatypesintheconnecteddatabasewithcomments.htm
它还应该列出用户定义的类型(如果有的话)。
就像在pgAdmin3中为表中的新列定义数据类型时所列出的列表一样。
pg_catalog.pg_type
中,因此您可能需要过滤结果。请参见 pg_type
系统目录表的文档。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;
**************************
date
类型始终是1082
吗? - ps2goat