_text postgres 数据类型

yuo*_*ggy 2 postgresql postgresql-11

我得到一个类型为 _text 的表

创建表mt(id int8,
方向_text null)

它不是我的代码,所以我不知道什么是 type _text 以及如何使用它。我在文档https://www.postgresql.org/docs/11/datatype.html中查找它 ,但没有找到。

我的问题是有人在 postgresql 中使用 _text 吗?我需要一个例子。

小智 6

它是数组的内部类型名称。类似于 的int8内部名称bigint

所以你的陈述与:

create table mt 
(
  id bigint,
  directions text[]
)
Run Code Online (Sandbox Code Playgroud)

我再也找不到引用了,但原因是它[]在标识符中无效(类型名称标识符),因此数组类型用_前缀来标识pg_type

这可以通过 pg_type 系统目录检测到:

select bt.typname as base_type, 
       at.typname as array_type
from pg_type bt
  join pg_type at on bt.typarray = at.oid
where bt.typnamespace = 'pg_catalog'::regnamespace  
order by bt.typname  
Run Code Online (Sandbox Code Playgroud)

pg_type.typarray链接到包含基本类型的数组类型的 pg_type 行。

劳伦兹回答了有关数据库管理员的类似问题,并提供了一些更多的技术见解。