columns #视图columns包含数据库中有关所有表列(或视图列)的信息。系统列(ctid等)不被包括在内。只有那些当前用户能够访问(作为拥有者或具有某些权限)的列才被显示。
Table 35.15. columns 列
|
列类型 描述 |
|---|
|
包含表的数据库的名称(总是当前数据库) |
|
包含表的模式的名称 |
|
表的名称 |
|
列名称 |
|
该列在表内的顺序位置(从 1 开始计) |
|
该列的默认表达式 |
|
如果该列可以为空,则为 |
|
如果该列的数据类型是一种内置类型,则为该列的数据类型;如果是某种数组(此种情况见视图 |
|
如果 |
|
如果 |
|
如果 |
|
如果 |
|
如果 |
|
如果 |
|
如果 |
|
对应 PostgreSQL 不支持的特性(关于时间间隔类型属性的分数秒精度可见 |
|
对应 PostgreSQL 不支持的特性 |
|
对应 PostgreSQL 不支持的特性 |
|
对应 PostgreSQL 不支持的特性 |
|
包含此属性排序规则的数据库名(总是当前数据库),如果默认或者该属性的数据类型不可排序则为空 |
|
该列的包含排序规则的模式名,如果默认或者该列的数据类型不可排序则为空 |
|
该列的排序规则的名称,如果默认或者该列的数据类型不可排序则为空 |
|
如果该列有一个域类型,这里是该域所在的数据库名(总是当前数据库),否则为空。 |
|
如果该列有一个域类型,这里是该域所在的模式名,否则为空。 |
|
如果该列有一个域类型,这里是该域的名称,否则为空。 |
|
该列数据类型(如果适用,底层的域类型)被定义的数据库名称(总是当前数据库) |
|
该列数据类型(如果适用,底层的域类型)被定义的模式名称 |
|
该列数据类型(如果适用,底层的域类型)的名称 |
|
对应 PostgreSQL 不支持的特性 |
|
对应 PostgreSQL 不支持的特性 |
|
对应 PostgreSQL 不支持的特性 |
|
总是为空,因为 PostgreSQL 中数组的最大基数始终不受限制 |
|
该列的数据类型描述符的一个标识符,在从属于该表的数据类型标识符之中唯一。 这主要用于与这类标识符的其他实例进行连接(该标识符的指定格式没有被定义并且不保证在未来的版本中保持相同)。 |
|
对应 PostgreSQL 不支持的特性 |
|
如果该列是一个标识列,则为 |
|
如果该列是一个标识列,则为 |
|
如果该列是一个标识列,则是内部序列的起始值,否则为空。 |
|
如果该列是一个标识列,则是内部序列的增量,否则为空。 |
|
如果该列是一个标识列,则是内部序列的最大值,否则为空。 |
|
如果该列是一个标识列,则是内部序列的最小值,否则为空。 |
|
如果该列是一个标识列,则 |
|
如果列是生成的列,则 |
|
如果列是生成的列,则生成表达式,否则为空。 |
|
如果该列是可更新的,则为 |
因为在 SQL 中有多种方式定义数据类型,而PostgreSQL还包含额外的方式来定义数据类型,它们在信息模式中的表示可能有点困难。列data_type应该标识列的底层内置类型。在PostgreSQL中,这表示定义在系统目录模式pg_catalog中的类型。如果应用能够特别地(例如以不同方式格式化数字类型或使用精度列中的数据)处理众所周知的内置类型,这列可能会有用。列udt_name、udt_schema和udt_catalog总是标识列的底层数据类型,即使该列是基于一个域的(因为PostgreSQL对待内置类型和用户定义类型的方式是一样的,内置类型也出现在这里。这是 SQL 标准的一种扩展)。如果一个应用想要根据该类型以不同的方式处理数据,就应该使用这些列,因为在那种情况下即使该列真地基于一个域也没有关系。如果该列是基于一个域,该域的标识被存储在列domain_name、domain_schema和domain_catalog。如果你想要把列和它们相关的数据类型配对并且把域视作单独的类型,你可以写coalesce(domain_name, udt_name)等等。
如果您发现文档中有不正确的内容、与您使用特定功能的经验不符或需要进一步说明,请使用此表单来报告文档问题。