database - 如何在 Postgres 中找到用户自定义类型的属性信息?

标签 database postgresql

假设我有一个用户定义的类型,如下所示:

CREATE TYPE mytype AS
 (myvar character(1),
  myvar2 bit(10));

我可以使用任何 Postgres 的信息表来获取此类型的属性信息吗:

即给定“mytype”,我想要的信息是:

  • myvar : character(1)
  • myvar2 : bit(10)

最佳答案

是的,pg_type 表将填充 typrelid 列。这是 pg_class 表的 OID 键,然后在 pg_attribute 表中使用,就像表、 View 、索引等一样。比如:

select attname, format_type(atttypid, atttypmod)
from pg_type
     join pg_class on pg_class.oid = pg_type.typrelid
     join pg_attribute on pg_attribute.attrelid = pg_class.oid
where typname = 'mytype'
order by attnum

关于database - 如何在 Postgres 中找到用户自定义类型的属性信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9195464/

相关文章:

sql - 在 SQL 查询中组合拆分日期范围

sql - 如何用一条SELECT语句从两台服务器的两个数据库中获取数据?

sql - 如何将 db 对象数据类型从 varchar 更改为 nvarchar 而不默认为 null?

PostgreSQL LOGGED 和 UNLOGGED 表性能与 LOCK TABLE 使用情况的比较

postgresql - 从关系中删除重复行

sql - Postgres 和部分日期

PostgreSQL 查询使用索引扫描运行得更快,但引擎选择散列连接

database - 完全使用 ram 时的 Memsql 行为

sql - 复制到对比。从 Snowflake 的外部舞台表演插入?

postgresql - 文本转换中丢失空间