我已经浏览过网络和PGSQL文档,以获取有关对我来说是隐藏数据类型的信息,但是这些信息很简短。我正在使用一个现有的数据库,该数据库具有带前面双下划线(__some_type)的返回类型的函数。在PGAdmin3中,您可以选择在树视图中显示类型,在那里我看到一些可识别的类型,这些类型在各种函数中使用,什么不是,但我没有看到其他类型。我通过PyCharm Full edition了解到,我可以连接到PostgreSQL DB并查看我提到的所有类型。与控制台一起使用" \ dT",而不是PGAdmin本身。
问题:在一个或两个下划线之前的类型处理是什么? (__some_type)。
跟进:我确实发现一个未经验证的来源描述了一个约定,该约定限制用户创建以下划线开头但尚未从PG源确认的类型。
以下是指向该链接的链接:https://momjian.us/main/writings/pgsql/aw_pgsql_book/node223.html
我提到的那条线一路走到了底部,#34;注意":
类型名称不能以下划线字符(" _")开头,并且可以 只有31个字符长。这是因为Postgres默默地创造了 每种基类型的数组类型,名称由基数组成 类型的名称前缀为下划线。
继续搜索结果 我找到了对我所说的内容的引用,但没有详细说明这些类型的行为,或者如果用户违反了这种限制会发生什么。
来自6.3文档的PG来源:
如前所述,Postgres完全支持基类型数组。 此外,Postgres还支持用户定义类型的数组。 定义类型时,Postgres会自动提供支持 那种类型的数组。由于历史原因,数组类型具有 与具有下划线字符_的用户定义类型相同的名称 前缀。复合类型不需要在它们上定义任何函数, 因为系统已经了解它们的内部结构。
限制
类型名称不能以下划线字符(" _")开头,并且可以 只有15个字符长。这是因为Postgres默默地创造了 每种基类型的数组类型,名称由基数组成 类型的名称前缀为下划线。