信息架构是每个 PostgreSQL 数据库通用的内置架构。您可以对 information_schema 中的表运行 SQL 查询来提取数据库的架构元数据。
例如,以下查询可提取数据库中所有用户定义的表的名称:
  SELECT
    table_schema,
    table_name
  FROM
    information_schema.tables
  WHERE
    table_schema NOT IN ('pg_catalog', 'information_schema', 'SPANNER_SYS')
    AND table_type = 'BASE TABLE'
用法
information_schema表只能通过 SQL 接口进行使用,例如:executeQueryAPIgcloud spanner databases execute-sql命令- Google Cloud 控制台中数据库的查询页面。
 
其他单次读取方法不支持
information_schema。
- 针对 
information_schema的查询可以使用强、有界限过时或精确过时时间戳边界。 - 如果您使用的是 GoogleSQL 方言数据库,请参阅 GoogleSQL 方言数据库的信息架构。
 
与 PostgreSQL 的 information_schema 的区别
PostgreSQL 方言数据库的 information_schema 中的表包含开源 PostgreSQL 的 information_schema 中的表的列,在某些情况下还包含来自 Spanner 的列。在这些表中,开源 PostgreSQL 列首先出现,并且顺序与开源 PostgreSQL 数据库中的顺序相同,随后附加 Spanner 的任何不同列。在 Google Cloud CLI 中使用 PostgreSQL 方言数据库时,为开源 PostgreSQL 版本的 information_schema 编写的查询应该无需修改即可正常运行。
PostgreSQL 方言数据库的 information_schema 中的其他显著差异包括:
- 开源 PostgreSQL 的某些表列可在 PostgreSQL 方言数据库中使用,但不会进行填充。
 - PostgreSQL 方言数据库将 
public用于默认架构名称。 - 自动生成的限制条件名称使用的格式与开源 PostgreSQL 数据库不同。
 - 与 PostgreSQL 方言数据库中不支持的开源 PostgreSQL 功能相关的表不可用。
 - 某些适用于 Spanner 但不适用于开源 PostgreSQL 的表(例如 
database_options、index_columns、indexes和spanner_statistics)可供使用。 
information_schema 表和视图中的行过滤
具有数据库级 IAM 权限的主账号以及被授予 spanner_info_reader 系统角色(或该角色的成员)访问权限的主账号可以查看所有 information_schema 表和视图中的所有行。对于其他主账号,Spanner 会根据当前数据库角色过滤行。以下各部分中的表和视图说明指明了 Spanner 如何针对每个表和视图过滤行。
PostgreSQL 方言数据库的 information_schema 中的表
information_schema 中的表和视图与开源 PostgreSQL 的 information_schema 中的表和视图兼容。
以下部分介绍了 PostgreSQL 方言数据库的 information_schema 中的表和视图。
applicable_roles
此行过滤视图会列出向所有数据库角色明确授予的所有角色成员资格。具有数据库级 IAM 权限的主账号以及被授予 spanner_info_reader 系统角色或该角色成员访问权限的主账号可以查看此视图中的所有行。所有其他主账号只能查看向当前数据库角色或当前数据库角色所属角色授予的角色成员资格。
由于所有数据库角色都是 public 角色的成员,因此结果会省略 public 角色中的隐式成员资格的记录。
| 列名 | 类型 | 说明 | 
|---|---|---|
grantee | 
            character varying | 
            被授予成员资格的数据库角色的名称。 | 
role_name | 
            character varying | 
            在其中授予相应成员资格的父数据库角色的名称。 | 
is_grantable | 
            character varying | 
            未使用。 始终为 NO。 | 
        
change_stream_columns
此行过滤视图包含有关表列以及监控这些列的变更数据流的信息。每行描述一个变更数据流和一个列。如果变更数据流跟踪整个表,则该表中的列不会显示在此视图中。
具有数据库级 IAM 权限的主账号以及被授予 spanner_info_reader 系统角色或该角色成员访问权限的主账号可以查看此视图中的所有行。所有其他主账号只能查看满足以下条件的变更数据流的对应行:其 SELECT 权限被授予给当前数据库角色、当前数据库角色所属的角色或是 public。
| 列名 | 类型 | 说明 | 
|---|---|---|
change_stream_catalog | 
    character varying | 
    数据库名称。 | 
change_stream_schema | 
    character varying | 
    变更数据流架构的名称。对于 PostgreSQL 方言数据库,默认值为 public。 | 
 
change_stream_name | 
    character varying | 
    变更数据流的名称。 | 
table_catalog | 
    character varying | 
    数据库名称。 | 
table_schema | 
    character varying | 
    表架构的名称。对于 PostgreSQL 方言数据库,默认值为 public。 | 
 
table_name | 
    character varying | 
    相应行引用的表的名称。 | 
column_name | 
    character varying | 
    相应行引用的列的名称。 | 
change_stream_options
此行过滤视图包含变更数据流的配置选项。具有数据库级 IAM 权限的主账号以及被授予 spanner_info_reader 系统角色或该角色成员访问权限的主账号可以查看此视图中的所有行。所有其他主账号只能查看满足以下条件的变更数据流的选项:其 SELECT 权限被授予给当前数据库角色、当前数据库角色所属的角色或是 public。
| 列名 | 类型 | 说明 | 
|---|---|---|
change_stream_catalog | 
    character varying | 
    数据库名称。 | 
change_stream_schema | 
    character varying  | 
    变更数据流架构的名称。对于 PostgreSQL 方言数据库,默认值为 public。 | 
 
change_stream_name | 
    character varying | 
    变更数据流的名称。 | 
option_name | 
    character varying | 
    变更数据流选项的名称。 | 
option_type | 
    character varying | 
    变更数据流选项的数据类型。 | 
option_value | 
    character varying | 
    变更数据流选项的值。 | 
change_stream_privileges
此行过滤视图会列出向任何数据库角色(包括 public)授予的针对所有变更数据流的所有精细访问权限控制权限。具有数据库级 IAM 权限的主账号以及被授予 spanner_info_reader 系统角色或该角色成员访问权限的主账号可以查看此视图中的所有行。所有其他主账号只能查看向当前数据库角色、当前数据库角色所属的角色或 public 授予的针对变更数据流的权限。
| 列名 | 类型 | 说明 | 
|---|---|---|
grantor | 
            character varying | 
            未使用。 始终为 NULL。 | 
        
grantee | 
            character varying | 
            被授予相应权限的数据库角色的名称。 | 
change_stream_catalog | 
            character varying | 
            数据库名称。 | 
change_stream_schema | 
            character varying | 
            包含变更数据流的架构的名称。对于 PostgreSQL 方言数据库,默认值为 public。 | 
        
change_stream_name | 
            character varying | 
            变更数据流的名称。 | 
privilege_type | 
            character varying | 
            权限的类型(仅限 SELECT)。 | 
        
is_grantable | 
            character varying | 
            未使用。 始终为 NO。 | 
        
change_stream_tables
此行过滤视图包含有关表以及监控这些表的变更数据流的信息。每行描述一个表和一个变更数据流。具有数据库级 IAM 权限的主账号以及被授予 spanner_info_reader 系统角色或该角色成员访问权限的主账号可以查看此视图中的所有行。所有其他主账号只能查看满足以下条件的变更数据流的对应行:其 SELECT 权限被授予给当前数据库角色、当前数据库角色所属的角色或是 public。
change_stream_tables 中的数据不包括表与跟踪整个数据库的变更数据流之间的隐式关系。
| 列名 | 类型 | 说明 | 
|---|---|---|
change_stream_catalog | 
    character varying | 
    数据库名称。 | 
change_stream_schema | 
    character varying | 
    变更数据流架构的名称。对于 PostgreSQL 方言数据库,默认值为 public。 | 
 
change_stream_name | 
    character varying | 
    相应行引用的变更数据流的名称。 | 
table_catalog | 
    character varying | 
    数据库名称。 | 
table_schema | 
    character varying | 
    表架构的名称。对于 PostgreSQL 方言数据库,默认值为 public。 | 
 
table_name | 
    character varying | 
    相应行引用的表的名称。 | 
all_columns | 
    character varying | 
    如果相应行的变更数据流跟踪此行所引用表的全部内容,则为 YES。否则,NO。 根据 SQL 标准,该字符串可以是 YES 或 NO,但不能是布尔值。 | 
 
change_streams
此行过滤视图会列出数据库的所有变更数据流,并注明哪些变更数据流跟踪整个数据库,哪些跟踪特定表或列。具有数据库级 IAM 权限的主账号以及被授予 spanner_info_reader 系统角色或该角色成员访问权限的主账号可以查看此视图中的所有行。所有其他主账号只能查看其 SELECT 精细访问权限控制权限被授予给当前数据库角色、当前数据库角色所属的角色或是 public 的变更数据流。
| 列名 | 类型 | 说明 | 
|---|---|---|
change_stream_catalog | 
    character varying | 
    数据库名称。 | 
change_stream_schema | 
    character varying | 
    相应变更数据流架构的名称。对于 PostgreSQL 方言数据库,默认值为 public。 | 
 
change_stream_name | 
    character varying | 
    变更数据流的名称。 | 
all | 
    character varying | 
    如果相应变更数据流跟踪整个数据库,则为 YES。如果相应变更数据流跟踪特定表或列,则为 NO。根据 SQL 标准,该字符串可以是 YES 或 NO,但不能是布尔值。 | 
 
check_constraints
对于由 CHECK 或 NOT NULL 关键字定义的每个检查限制条件,check_constraints 视图都包含对应的一行。
| 列名 | 类型 | 说明 | 
|---|---|---|
constraint_catalog | 
    character varying | 
    数据库名称。 | 
constraint_schema | 
    character varying | 
    限制条件的架构名称。对于 PostgreSQL 方言数据库,默认值为 public。 | 
  
constraint_name | 
    character varying | 
    限制条件的名称。如果未在架构中明确指定限制条件的名称,则使用自动生成的名称。 | 
check_clause | 
    character varying | 
    检查限制条件的表达式。 | 
spanner_state | 
    character varying | 
    检查限制条件的当前状态。可能的状态如下:
      
  | 
  
column_column_usage
此视图会列出依赖于同一表中其他基本列的所有生成列。
| 列名 | 类型 | 说明 | 
|---|---|---|
table_catalog | 
    character varying | 
    数据库名称。 | 
table_schema | 
    character varying | 
    包含表的架构的名称。该名称对于默认架构为 public,对于其他架构(例如,information_schema 本身)为非空。此列从来不会为 null。 | 
  
table_name | 
    character varying | 
    包含生成列的表的名称。 | 
column_name | 
    character varying | 
    生成列所依赖的基本列的名称。 | 
dependent_column | 
    character varying | 
    生成列的名称。 | 
column_options
此视图会列出为外键限制条件的被引用表列定义的所有选项。此视图仅包含当前用户有权访问(通过成为所有者或是被授予权限)的引用表中的列。
| 列名 | 类型 | 说明 | 
|---|---|---|
table_catalog | 
    character varying | 
    数据库名称。 | 
table_schema | 
    character varying | 
    包含外部表的架构的名称。该名称对于默认架构为 public,对于其他架构(例如,information_schema 本身)为非空。此列从来不会为 null。 | 
  
table_name | 
    character varying | 
    外部表的名称。 | 
column_name | 
    character varying | 
    列的名称。 | 
option_name | 
    character varying | 
    唯一标识选项的 SQL 标识符。此标识符是 DDL 中 OPTIONS 子句的键。 | 
  
option_value | 
    character varying | 
    描述此选项值的 SQL 字面量。此列的值可作为查询的一部分进行解析。 | 
option_type | 
    character varying | 
    表示此选项值的类型的数据类型名称。 | 
column_privileges
此行过滤视图会列出向任何数据库角色(包括 public)授予的针对所有列的所有精细访问权限控制权限。具有 IAM 数据库级权限的主账号以及被授予 spanner_info_reader 系统角色或该角色成员访问权限的主账号可以查看此视图中的所有行。所有其他主账号只能查看向当前数据库角色、当前数据库角色所属的角色或 public 授予的针对列的权限。
此视图包含相应列从该列所属的表或视图继承的 SELECT、INSERT 和 UPDATE 权限。
| 列名 | 类型 | 说明 | 
|---|---|---|
grantor | 
            character varying | 
            未使用。 始终为 NULL。 | 
        
grantee | 
            character varying | 
            被授予相应权限的数据库角色的名称。 | 
table_catalog | 
            character varying | 
            数据库名称。 | 
table_schema | 
            character varying | 
            包含表或视图的架构的名称。对于 PostgreSQL 方言数据库,默认值为 public。 | 
        
table_name | 
            character varying | 
            包含列的表或视图的名称。 | 
column_name | 
            character varying | 
            列的名称。 | 
privilege_type | 
            character varying | 
            权限的类型(SELECT、INSERT 或 UPDATE)。 | 
        
is_grantable | 
            character varying | 
            未使用。 始终为 NO。 | 
        
columns
此行过滤视图会提供有关数据库中所有表列和视图列的信息。具有数据库级 IAM 权限的主账号以及被授予 spanner_info_reader 系统角色或该角色成员访问权限的主账号可以查看此视图中的所有行。所有其他主账号只能查看其精细访问权限控制权限(或是针对其包含表授予的 SELECT、INSERT 或 UPDATE 权限)被授予给当前数据库角色、当前数据库角色所属的角色或是 public 的列。
| 列名 | 类型 | 说明 | 
|---|---|---|
table_catalog | 
    character varying | 
    数据库名称。 | 
table_schema | 
    character varying | 
    包含表的架构的名称。该名称对于默认架构为 public,对于其他架构(例如,information_schema 本身)为非空。此列从来不会为 null。 | 
 
table_name | 
    character varying | 
    表的名称 | 
column_name | 
    character varying | 
    列的名称 | 
ordinal_position | 
    BIGINT | 
    表中列的序号位置,从值 1 开始 | 
column_default | 
    character varying | 
    列默认值的开源 PostgreSQL 表达式的字符串表示形式,例如 '9'::bigint。
    | 
 
is_nullable | 
    character varying | 
    指明列是否可以为 Null 的字符串。根据 SQL 标准,该字符串可以是 YES 或 NO,但不能是布尔值。 | 
 
data_type | 
    character varying | 
    列的数据类型。该值可以是以下各项之一:
      
  | 
  
character_maximum_length | 
    BIGINT | 
    字符串和位串数据类型的声明长度上限。如果未指定长度上限,则值为 NULL。如果列的数据类型不是字符串或位串,则值为 NULL。 | 
  
character_octet_length | 
    BIGINT | 
    未使用。 值始终为 NULL。 | 
  
numeric_precision | 
    BIGINT | 
    当前列的数值数据类型的精度。对于 double precision,值为 53。对于 bigint,值为 64。对于所有其他数据类型,值为 NULL。 | 
  
numeric_precision_radix | 
    BIGINT | 
    数值类型精度的基数(单位)。仅支持两个值:
      
 NULL。 | 
  
numeric_scale | 
    BIGINT | 
    包含数值列类型的小数位数,即小数点后的精度基数单位数量。对于 bigint,值为 0。对于所有其他数据类型,值为 NULL。 | 
  
datetime_precision | 
    BIGINT | 
    未使用。 值始终为 NULL。 | 
  
interval_type | 
    character varying | 
    未使用。 值始终为 NULL。 | 
  
interval_precision | 
    BIGINT | 
    未使用。 值始终为 NULL。 | 
  
character_set_catalog | 
    character varying | 
    未使用。 值始终为 NULL。 | 
  
character_set_schema | 
    character varying | 
    未使用。 值始终为 NULL。 | 
  
character_set_name | 
    character varying | 
    未使用。 值始终为 NULL。 | 
  
collation_catalog | 
    character varying | 
    未使用。 值始终为 NULL。 | 
  
collation_schema | 
    character varying | 
    未使用。 值始终为 NULL。 | 
  
collation_name | 
    character varying | 
    未使用。 值始终为 NULL。 | 
  
domain_catalog | 
    character varying | 
    未使用。 值始终为 NULL。 | 
  
domain_schema | 
    character varying | 
    未使用。 值始终为 NULL。 | 
  
domain_name | 
    character varying | 
    未使用。 值始终为 NULL。 | 
  
udt_catalog | 
    character varying | 
    未使用。 值始终为 NULL。 | 
  
udt_schema | 
    character varying | 
    未使用。 值始终为 NULL。 | 
  
udt_name | 
    character varying | 
    未使用。 值始终为 NULL。 | 
  
scope_catalog | 
    character varying | 
    未使用。 值始终为 NULL。 | 
  
scope_schema | 
    character varying | 
    未使用。 值始终为 NULL。 | 
  
scope_name | 
    character varying | 
    未使用。 值始终为 NULL。 | 
  
maximum_cardinality | 
    BIGINT | 
    未使用。 值始终为 NULL。 | 
  
dtd_identifier | 
    character varying | 
    未使用。 值始终为 NULL。 | 
  
is_self_referencing | 
    character varying | 
    未使用。 值始终为 NULL。 | 
  
is_identity | 
    character varying | 
    未使用。 值始终为 NULL。 | 
  
identity_generation | 
    character varying | 
    未使用。 值始终为 NULL。 | 
  
identity_start | 
    character varying | 
    未使用。 值始终为 NULL。 | 
  
identity_increment | 
    character varying | 
    未使用。 值始终为 NULL。 | 
  
identity_maximum | 
    character varying | 
    未使用。 值始终为 NULL。 | 
  
identity_minimum | 
    character varying | 
    未使用。 值始终为 NULL。 | 
  
identity_cycle | 
    character varying | 
    未使用。 值始终为 NULL。 | 
  
is_generated | 
    character varying | 
    指明是否生成列的字符串。对于生成的列,字符串为 ALWAYS;对于非生成的列,该字符串为 NEVER。 | 
 
generation_expression | 
    character varying | 
     表示生成列的 SQL 表达式的字符串;如果相应列不是生成列,则为 NULL。 | 
 
is_updatable | 
    character varying | 
    未使用。 值始终为 NULL。 | 
 
spanner_type | 
    character varying | 
    用于保存与 DDL 兼容的列类型的字符串。 | 
is_stored | 
    character varying | 
     指明是否存储生成的列的字符串。该字符串对于生成列始终为 YES 或 NO,对于非生成列始终为 NULL。 | 
 
spanner_state | 
    character varying | 
    列的当前状态。向现有表添加的新的生成的已存储列可能需要经过多个用户可观察状态才能充分利用。可能的 
  | 
 
constraint_column_usage
此视图包含一行有关限制条件使用的每一列的信息。
- 对于由 
NOT NULL关键字定义的PRIMARY KEY和CHECK限制条件,此视图包含这些列。 - 对于使用 
CHECK关键字创建的CHECK限制条件,此视图包含检查限制条件表达式使用的列。 - 对于外键限制条件,此视图包含被引用表的列。
 - 对于 
UNIQUE限制条件,此视图包含来自KEY_COLUMN_USAGE的列。 
| 列名 | 类型 | 说明 | 
|---|---|---|
table_catalog | 
    character varying | 
    数据库名称。 | 
table_schema | 
    character varying | 
    包含限制条件所使用的列所属的表的架构的名称。 | 
table_name | 
    character varying | 
    限制条件所使用的列所属的表的名称。 | 
column_name | 
    character varying | 
    限制条件使用的列的名称。 | 
constraint_catalog | 
    character varying | 
    数据库名称。 | 
constraint_schema | 
    character varying | 
    限制条件的架构名称。 | 
constraint_name | 
    character varying | 
    限制条件的名称。 | 
constraint_table_usage
此视图对于限制条件使用的每个表都包含对应的一行。对于 FOREIGN
KEY 限制条件,表信息适用于 REFERENCES 子句中的表。对于唯一或主键限制条件,此视图标识限制条件所属的表。此视图中不包含检查限制条件和非 null 限制条件。
| 列名 | 类型 | 说明 | 
|---|---|---|
table_catalog | 
    character varying | 
    数据库名称。 | 
table_schema | 
    character varying | 
    受限表的架构的名称。 | 
table_name | 
    character varying | 
    某个限制条件所使用的表的名称。 | 
constraint_catalog | 
    character varying | 
    数据库名称。 | 
constraint_schema | 
    character varying | 
    包含限制条件的架构的名称。 | 
constraint_name | 
    character varying | 
    限制条件的名称。 | 
database_options
此表列出了在数据库上设置的选项。
| 列名 | 类型 | 说明 | 
|---|---|---|
catalog_name | 
    character varying | 
    数据库名称。 | 
schema_name | 
    character varying | 
    架构的名称。对于 PostgreSQL 方言数据库,默认值为 public。 | 
 
option_name | 
    character varying | 
    数据库选项的名称。 这是 DDL 中 OPTIONS 子句内的 key 值。 | 
 
option_type | 
    character varying | 
    数据库选项的数据类型。 | 
option_value | 
    character varying | 
    数据库选项的值。 | 
enabled_roles
此行过滤视图会列出已定义的数据库角色。具有数据库级 IAM 权限的主账号以及被授予 spanner_info_reader 系统角色或该角色成员访问权限的主账号可以查看所有数据库角色。所有其他主账号只能查看已直接或通过继承被授予其访问权限的数据库角色。除 public 之外的所有系统角色也会显示在此视图中。
| 列名 | 类型 | 说明 | 
|---|---|---|
role_name | 
            character varying | 
            角色的名称。 | 
spanner_is_system | 
            character varying | 
            如果角色是系统角色,则为 YES。否则为 NO。 | 
        
index_columns
此视图会列出索引中的列。
| 列名 | 类型 | 说明 | 
|---|---|---|
table_catalog | 
    character varying | 
    数据库名称。 | 
table_schema | 
    character varying | 
    包含索引的架构的名称。默认值为 public。 | 
 
table_name | 
    character varying | 
    与索引关联的表的名称。 | 
index_name | 
    character varying | 
    索引的名称。具有 PRIMARY KEY 规范的表具有使用名称 PRIMARY_KEY 生成的伪索引条目。 | 
 
index_type | 
    character varying | 
    索引的类型。可能的值为 PRIMARY_KEY、LOCAL 或 GLOBAL。 | 
 
column_name | 
    character varying | 
    列的名称。 | 
ordinal_position | 
    BIGINT | 
    索引(或主键)中列的序号位置,从值 1 开始。对于非键列(例如,索引的 INCLUDE 子句中指定的列),此值为 NULL。 | 
 
column_ordering | 
    character varying | 
     列的排列顺序。对于键列,值为 ASC 或 DESC;对于非键列(例如,索引的 STORING 子句中指定的列),值为 NULL。 | 
 
is_nullable | 
    character varying | 
    指明列是否可以为 Null 的字符串。根据 SQL 标准,该字符串可以是 YES 或 NO,但不能是布尔值。 | 
 
spanner_type | 
    character varying | 
    用于保存与 DDL 兼容的列类型的字符串。 | 
indexes
此视图会列出架构中的索引。
| 列名 | 类型 | 说明 | 
|---|---|---|
table_catalog | 
    character varying | 
    数据库名称。 | 
table_schema | 
    character varying | 
    架构的名称。默认值为 public。 | 
 
table_name | 
    character varying | 
    表的名称。 | 
index_name | 
    character varying | 
    索引的名称。使用 PRIMARY KEY 子句创建的表具有使用名称 PRIMARY_KEY 生成的伪索引条目,这样可以标识主键的字段。 | 
     
 
index_type | 
    character varying | 
   索引的类型。值包括 PRIMARY_KEY、LOCAL 或 GLOBAL。 | 
 
parent_table_name | 
    character varying | 
    二级索引可以在父表中交织,如创建二级索引中所述。此列保存该父表的名称,如果索引未交织,则为空字符串。 | 
is_unique | 
    character varying | 
    索引键是否必须是唯一的。 根据 SQL 标准,该字符串可以是 YES 或 NO,但不能是布尔值。 | 
 
is_null_filtered | 
    character varying | 
    索引是否包含值为 NULL 的条目。 根据 SQL 标准,该字符串可以是 YES 或 NO,但不能是布尔值。 | 
 
index_state | 
    character varying | 
    索引的当前状态。可能的值和它们所代表的状态如下:
      
  | 
 
spanner_is_managed | 
    character varying | 
    索引是否由 Spanner 管理。例如,外键的二级支持性索引由 Spanner 管理。根据 SQL 标准,该字符串可以是 YES 或 NO,但不能是布尔值。 | 
 
information_schema_catalog_name
此表包含一行以及其中含有数据库名称的一列。
| 列名 | 类型 | 说明 | 
|---|---|---|
catalog_name | 
    character varying | 
    数据库名称。 | 
key_column_usage
此视图用于标识当前数据库中由唯一、主键或外键限制条件引用的所有列。如需了解 CHECK 限制条件列,请参阅 check_constraints 视图。
| 列名 | 类型 | 说明 | 
|---|---|---|
constraint_catalog | 
    character varying | 
    数据库名称。 | 
constraint_schema | 
    character varying | 
    限制条件的架构名称。默认值为 public。 | 
 
constraint_name | 
    character varying | 
    限制条件的名称。 | 
table_catalog | 
    character varying | 
    数据库名称。 | 
table_schema | 
    character varying | 
    包含受限列所属的表的架构的名称。默认值为 public。 | 
 
table_name | 
    character varying | 
    包含受相应限制条件限制的列的表的名称。 | 
column_name | 
    character varying | 
    受限列的名称。 | 
ordinal_position | 
    BIGINT | 
    列在限制条件键中的序号位置,从值 1 开始。 | 
 
position_in_unique_constraint | 
    BIGINT | 
    对于 FOREIGN KEY,为列在唯一限制条件中的序号位置,从值 1 开始。对于其他限制条件类型,此列的值为 NULL。 | 
 
parameters
此行过滤视图定义每个变更数据流读取函数的参数。每行描述一个变更数据流读取函数的一个参数。
具有数据库级 IAM 权限的主账号以及被授予 spanner_info_reader 系统角色或该角色成员访问权限的主账号可以查看此视图中的所有行。所有其他主账号只能查看满足以下条件的变更数据流读取函数的参数:其 EXECUTE 精细访问权限控制权限被授予给当前数据库角色、当前数据库角色所属的角色或 public。
| 列名 | 类型 | 说明 | 
|---|---|---|
specific_catalog | 
            character varying | 
            数据库名称。 | 
specific_schema | 
            character varying | 
            例程架构的名称。对于 PostgreSQL 方言数据库,默认值为 public。 | 
        
specific_name | 
            character varying | 
            例程的名称。唯一标识例程,即使其名称被重载也是如此。 | 
ordinal_position | 
            bigint | 
            参数在例程参数列表中的序号位置,从值 1 开始。 | 
parameter_mode | 
            character varying | 
            未使用。 始终为 NULL。 | 
        
is_result | 
            character varying | 
            未使用。 始终为 NULL。 | 
        
as_locator | 
            character varying | 
            未使用。 始终为 NULL。 | 
        
parameter_name | 
            character varying | 
            参数的名称。 | 
data_type | 
            character varying | 
            参数的数据类型。该值可以是以下各项之一:
 
  | 
        
character_maximum_length | 
            bigint | 
            未使用。 始终为 NULL。 | 
        
character_octet_length | 
            bigint | 
            未使用。 值始终为 NULL。 | 
        
character_set_catalog | 
            character varying | 
            未使用。 值始终为 NULL。 | 
        
character_set_schema | 
            character varying | 
            未使用。 值始终为 NULL。 | 
        
character_set_name | 
            character varying | 
            未使用。 值始终为 NULL。 | 
        
collation_catalog | 
            character varying | 
            未使用。 值始终为 NULL。 | 
        
collation_schema | 
            character varying | 
            未使用。 值始终为 NULL。 | 
        
collation_name | 
            character varying | 
            未使用。 值始终为 NULL。 | 
        
numeric_precision | 
            bigint | 
            未使用。 值始终为 NULL。 | 
        
numeric_precision_radix | 
            bigint | 
            未使用。 值始终为 NULL。 | 
        
numeric_scale | 
            bigint | 
            未使用。 值始终为 NULL。 | 
        
datetime_precision | 
            bigint | 
            未使用。 值始终为 NULL。 | 
        
interval_type | 
            character varying | 
            未使用。 值始终为 NULL。 | 
        
interval_precision | 
            bigint | 
            未使用。 值始终为 NULL。 | 
        
udt_catalog | 
            character varying | 
            未使用。 值始终为 NULL。 | 
        
udt_schema | 
            character varying | 
            未使用。 值始终为 NULL。 | 
        
udt_name | 
            character varying | 
            未使用。 值始终为 NULL。 | 
        
scope_catalog | 
            character varying | 
            未使用。 值始终为 NULL。 | 
        
scope_schema | 
            character varying | 
            未使用。 值始终为 NULL。 | 
        
scope_name | 
            character varying | 
            未使用。 值始终为 NULL。 | 
        
maximum_cardinality | 
            bigint | 
            未使用。 值始终为 NULL。 | 
        
dtd_identifier | 
            character varying | 
            未使用。 值始终为 NULL。 | 
        
parameter_default | 
            character varying | 
            未使用。 值始终为 NULL。 | 
        
placements
此表列出数据库中的布置。
| 列名 | 类型 | 说明 | 
|---|---|---|
placement_name | 
    character varying | 
    布置的名称。 | 
is_default | 
    character varying | 
    指明列是否可以为 Null 的字符串。根据 SQL 标准,该字符串可以是 YES 或 NO,但不能是布尔值。 | 
 
placement-options
对于每个布置,此表会列出在 CREATE PLACEMENT 语句的 OPTIONS 子句中对布置设置的选项。
| 列名 | 类型 | 说明 | 
|---|---|---|
placement_name | 
    character varying | 
    布置的名称。 | 
option_name | 
    character varying | 
    布置选项的名称。option_name 的有效值包括:
      
  | 
 
option_type | 
    character varying | 
    布置选项的数据类型。 | 
option_value | 
    character varying | 
    布置选项的值。对于 instance_partition,这是实例分区的名称。对于 default_leader,这是默认主要区域的名称。 | 
 
locality-group-options
对于每个存放区域组,此表列出了在 CREATE LOCALITY GROUP 语句的 OPTIONS 子句中对存放区域组设置的名称和选项。
| 列名 | 类型 | 说明 | 
|---|---|---|
locality_group_name | 
    character varying | 
    存放区域组的名称。 | 
option_name | 
    character varying | 
    存放区域组选项的名称。有效选项包括:
      
  | 
 
option_value | 
    character varying | 
    存放区域组选项的值。对于 storage,这是 ssd 或 hdd。对于 ssd_to_hdd_spill_timespan,这是数据必须在 SSD 中存储的时间量(在数据移至 HDD 存储空间之前)。例如,10d 为 10 天。您可以设置的最小时间量为 1 小时。 | 
 
referential_constraints
此视图包含一行有关每个 FOREIGN KEY 限制条件的信息。 您只能查看您对引用表拥有写入权限的限制条件。此视图还会标识被引用表上的 PRIMARY KEY 和 UNIQUE 限制条件,外键将这些限制条件用于限制条件强制执行和引用操作。
| 列名 | 类型 | 说明 | 
|---|---|---|
constraint_catalog | 
    character varying | 
    数据库名称。 | 
constraint_schema | 
    character varying | 
    包含外键限制条件的架构的名称。默认值为 public。 | 
 
constraint_name | 
    character varying | 
    外键限制条件的名称。 | 
unique_constraint_catalog | 
    character varying | 
    数据库名称。 | 
unique_constraint_schema | 
    character varying | 
    包含外键限制条件所引用的唯一或主键限制条件的架构的名称。 | 
unique_constraint_name | 
    character varying | 
    外键限制条件所引用的唯一或主键限制条件的名称。 | 
match_option | 
    character varying | 
    外键限制条件使用的匹配方法。值始终为 NONE。
      | 
 
update_rule | 
    character varying | 
    外键限制条件的更新规则。此值始终为 NO ACTION。
    | 
 
delete_rule | 
    character varying | 
    外键限制条件的删除规则。此值为 CASCADE 或 NO ACTION。 | 
   
  
spanner_state | 
    character varying | 
   外键的当前状态。在创建和回填外键的支持性索引之前,Spanner 不会开始强制执行限制条件。索引准备就绪后,Spanner 会在验证现有数据时开始对新事务强制执行限制条件。可能的值和它们所代表的状态如下:
    
  | 
 
role_change_stream_grants
此行过滤视图会列出向任何数据库角色(包括 public)授予的针对所有变更数据流的 SELECT 权限。具有数据库级 IAM 权限的主账号以及被授予 spanner_info_reader 系统角色或该角色成员访问权限的主账号可以查看此视图中的所有行。所有其他主账号只能查看向当前数据库角色和当前数据库角色所属的角色(不包括 public)授予的针对变更数据流的权限。
| 列名 | 类型 | 说明 | 
|---|---|---|
grantor | 
            character varying | 
            未使用。 始终为 NULL。 | 
        
grantee | 
            character varying | 
            被授予相应权限的数据库角色的名称。 | 
change_stream_catalog | 
            character varying | 
            数据库名称。 | 
change_stream_schema | 
            character varying | 
            包含变更数据流的架构的名称。对于 PostgreSQL 方言数据库,默认值为 public。 | 
        
change_stream_name | 
            character varying | 
            变更数据流的名称。 | 
privilege_type | 
            character varying | 
            权限的类型(仅限 SELECT)。 | 
        
is_grantable | 
            character varying | 
            未使用。 始终为 NO。 | 
        
role_column_grants
此行过滤视图会列出向任何数据库角色(包括 public)授予的针对所有列的所有精细访问权限控制权限。具有数据库级 IAM 权限的主账号以及被授予 spanner_info_reader 系统角色或该角色成员访问权限的主账号可以查看此视图中的所有行。所有其他主账号只能查看向当前数据库角色和当前数据库角色所属的角色(不包括 public)授予的针对列的权限。
此视图包含相应列从该列所属的表或视图继承的 SELECT、INSERT 和 UPDATE 权限。
| 列名 | 类型 | 说明 | 
|---|---|---|
grantor | 
            character varying | 
            未使用。 始终为 NULL。 | 
        
grantee | 
            character varying | 
            被授予相应权限的数据库角色的名称。 | 
table_catalog | 
            character varying | 
            数据库名称。 | 
table_schema | 
            character varying | 
            包含表或视图的架构的名称。对于 PostgreSQL 方言数据库,默认值为 public。 | 
        
table_name | 
            character varying | 
            包含列的表或视图的名称。 | 
column_name | 
            character varying | 
            列的名称。 | 
privilege_type | 
            character varying | 
            权限的类型(SELECT、INSERT 或 UPDATE)。 | 
        
is_grantable | 
            character varying | 
            未使用。 始终为 NO。 | 
        
role_routine_grants
此行过滤视图会列出向任何数据库角色(包括 public)授予的针对所有变更数据流读取函数的 EXECUTE 权限。具有数据库级 IAM 权限的主账号以及被授予 spanner_info_reader 系统角色或该角色成员访问权限的主账号可以查看此视图中的所有行。所有其他主账号只能查看向当前数据库角色和当前数据库角色所属的角色(不包括 public)授予的针对变更数据流读取函数的权限。
| 列名 | 类型 | 说明 | 
|---|---|---|
                grantor
             | 
            
                character varying
             | 
            未使用。 始终为 NULL。 | 
        
                grantee
             | 
            
                character varying
             | 
            被授予权限的角色的名称。 | 
                specific_catalog
             | 
            
                character varying
             | 
            数据库名称。 | 
                specific_schema
             | 
            
                character varying
             | 
            例程架构的名称。对于 PostgreSQL 方言数据库,默认值为 public。 | 
        
                specific_name
             | 
            
                character varying
             | 
            例程的名称。唯一标识例程,即使其名称被重载也是如此。 | 
                routine_catalog
             | 
            
                character varying
             | 
            数据库名称。 | 
                routine_schema
             | 
            
                character varying
             | 
            例程架构的名称。对于 PostgreSQL 方言数据库,默认值为 public。 | 
        
                routine_name
             | 
            
                character varying
             | 
            例程的名称。(可能会在重载时重复。) | 
                privilege_type
             | 
            
                character varying
             | 
            授予的权限类型。始终为 EXECUTE。 | 
        
                is_grantable
             | 
            
                character varying
             | 
            未使用。 始终为 NO。 | 
        
role_table_grants
此行过滤视图会列出向任何数据库角色(包括 public)授予的针对所有表和视图的所有精细访问权限控制权限。具有数据库级 IAM 权限的主账号以及被授予 spanner_info_reader 系统角色或该角色成员访问权限的主账号可以查看此视图中的所有行。所有其他主账号只能查看向当前数据库角色和当前数据库角色所属的角色(不包括 public)授予的针对表和视图的权限。
| 列名 | 类型 | 说明 | 
|---|---|---|
grantor | 
            character varying | 
            未使用。 始终为 NULL。 | 
        
grantee | 
            character varying | 
            被授予相应权限的数据库角色的名称。 | 
table_catalog | 
            character varying | 
            数据库名称。 | 
table_schema | 
            character varying | 
            包含表或视图的架构的名称。对于 PostgreSQL 方言数据库,默认值为 public。 | 
        
table_name | 
            character varying | 
            表或视图的名称。 | 
privilege_type | 
            character varying | 
            权限的类型(SELECT、INSERT、UPDATE 或 DELETE)。 | 
        
is_grantable | 
            character varying | 
            未使用。 始终为 NO。 | 
        
with_hierarchy | 
            character varying | 
            未使用。 始终为 NULL。 | 
        
routine_options
此行过滤视图对于每个已定义变更数据流读取函数的每个选项都包含对应的一行。
具有数据库级 IAM 权限的主账号以及被授予 spanner_info_reader 系统角色或该角色成员访问权限的主账号可以查看此视图中的所有行。所有其他主账号只能查看满足以下条件的变更数据流读取函数的选项:其 EXECUTE 精细访问权限控制权限被授予给当前数据库角色、当前数据库角色所属的角色或 public。
| 列名 | 类型 | 说明 | 
|---|---|---|
                specific_catalog
             | 
            
                character varying
             | 
            数据库名称。 | 
                specific_schema
             | 
            
                character varying
             | 
            例程架构的名称。对于 PostgreSQL 方言数据库,默认值为 public。 | 
        
                specific_name
             | 
            
                character varying
             | 
            例程的名称。唯一标识例程,即使其名称被重载也是如此。 | 
                option_name
             | 
            
                character varying
             | 
            选项的名称。 | 
                option_type
             | 
            
                character varying
             | 
            选项的数据类型。该值可以是以下各项之一:
 
  | 
        
                option_value
             | 
            
                character varying
             | 
            选项的值。 | 
routine_privileges
此行过滤视图会列出向任何数据库角色(包括 public)授予的针对所有变更数据流读取函数的所有精细访问权限控制权限。具有数据库级 IAM 权限的主账号以及被授予 spanner_info_reader 系统角色或该角色成员访问权限的主账号可以查看此视图中的所有行。所有其他主账号只能查看向当前数据库角色、当前数据库角色所属的角色或 public 授予的针对变更数据流读取函数的权限。
| 列名 | 类型 | 说明 | 
|---|---|---|
                grantor
             | 
            
                character varying
             | 
            未使用。 始终为 NULL。 | 
        
                grantee
             | 
            
                character varying
             | 
            被授予权限的角色的名称。 | 
                specific_catalog
             | 
            
                character varying
             | 
            数据库名称。 | 
                specific_schema
             | 
            
                character varying
             | 
            例程架构的名称。对于 PostgreSQL 方言数据库,默认值为 public。 | 
        
                specific_name
             | 
            
                character varying
             | 
            例程的名称。唯一标识例程,即使其名称被重载也是如此。 | 
                routine_catalog
             | 
            
                character varying
             | 
            数据库名称。 | 
                routine_schema
             | 
            
                character varying
             | 
            例程架构的名称。默认值为 public。 | 
        
                routine_name
             | 
            
                character varying
             | 
            例程的名称。(如果重载,可能会重复。) | 
                privilege_type
             | 
            
                character varying
             | 
            授予的权限类型。 | 
                is_grantable
             | 
            
                character varying
             | 
            未使用。 始终为 NO。 | 
        
routines
此行过滤视图会列出数据库的所有变更数据流读取函数。具有数据库级 IAM 权限的主账号以及被授予 spanner_info_reader 系统角色或该角色成员访问权限的主账号可以查看此视图中的所有行。所有其他主账号只能查看其 EXECUTE 精细访问权限控制权限被授予给当前数据库角色、当前数据库角色所属的角色或是 public 的变更数据流读取函数。
| 列名 | 类型 | 说明 | 
|---|---|---|
specific_catalog | 
            character varying | 
            数据库名称。 | 
specific_schema | 
            character varying | 
            例程架构的名称。对于 PostgreSQL 方言数据库,默认值为 public。 | 
        
specific_name | 
            character varying | 
            例程的名称。唯一标识例程,即使其名称被重载也是如此。 | 
routine_catalog | 
            character varying | 
            数据库名称。 | 
routine_schema | 
            character varying | 
            例程架构的名称。 | 
routine_name | 
            character varying | 
            例程的名称。(可能会在重载时重复。) | 
routine_type | 
            character varying | 
            例程的类型(FUNCTION 或 PROCEDURE)。始终为 FUNCTION | 
        
module_catalog | 
            character varying | 
            未使用。 值始终为 NULL。 | 
        
module_schema | 
            character varying | 
            未使用。 值始终为 NULL。 | 
        
module_name | 
            character varying | 
            未使用。 值始终为 NULL。 | 
        
udt_catalog | 
            character varying | 
            未使用。 值始终为 NULL。 | 
        
udt_schema | 
            character varying | 
            未使用。 值始终为 NULL。 | 
        
udt_name | 
            character varying | 
            未使用。 值始终为 NULL。 | 
        
data_type | 
            character varying | 
            例程的返回类型。该值可以是以下各项之一:
 
  | 
        
character_maximum_length | 
            bigint | 
            未使用。 值始终为 NULL。 | 
        
character_octet_length | 
            bigint | 
            未使用。 值始终为 NULL。 | 
        
character_set_catalog | 
            character varying | 
            未使用。 值始终为 NULL。 | 
        
character_set_schema | 
            character varying | 
            未使用。 值始终为 NULL。 | 
        
character_set_name | 
            character varying | 
            未使用。 值始终为 NULL。 | 
        
collation_catalog | 
            character varying | 
            未使用。 值始终为 NULL。 | 
        
collation_schema | 
            character varying | 
            未使用。 值始终为 NULL。 | 
        
collation_name | 
            character varying | 
            未使用。 值始终为 NULL。 | 
        
numeric_precision | 
            bigint | 
            未使用。 值始终为 NULL。 | 
        
numeric_precision_radix | 
            bigint | 
            未使用。 值始终为 NULL。 | 
        
numeric_scale | 
            bigint | 
            未使用。 值始终为 NULL。 | 
        
datetime_precision | 
            bigint | 
            未使用。 值始终为 NULL。 | 
        
interval_type | 
            character varying | 
            未使用。 值始终为 NULL。 | 
        
interval_precision | 
            bigint | 
            未使用。 值始终为 NULL。 | 
        
type_udt_catalog | 
            character varying | 
            未使用。 值始终为 NULL。 | 
        
type_udt_schema | 
            character varying | 
            未使用。 值始终为 NULL。 | 
        
type_udt_name | 
            character varying | 
            未使用。 值始终为 NULL。 | 
        
scope_catalog | 
            character varying | 
            未使用。 值始终为 NULL。 | 
        
scope_schema | 
            character varying | 
            未使用。 值始终为 NULL。 | 
        
scope_name | 
            character varying | 
            未使用。 值始终为 NULL。 | 
        
maximum_cardinality | 
            bigint | 
            未使用。 值始终为 NULL。 | 
        
dtd_identifier | 
            character varying | 
            未使用。 值始终为 NULL。 | 
        
routine_body | 
            character varying | 
            例程正文的类型(SQL 或 EXTERNAL)。 | 
        
routine_definition | 
            character varying | 
            routine_body SQL 的定义,否则为空。 | 
        
external_name | 
            character varying | 
            未使用。 值始终为 NULL。 | 
        
external_language | 
            character varying | 
            未使用。 值始终为 NULL。 | 
        
parameter_style | 
            character varying | 
            未使用。 值始终为 NULL。 | 
        
is_deterministic | 
            character varying | 
            未使用。 值始终为 NULL。 | 
        
sql_data_access | 
            character varying | 
            未使用。 值始终为 NULL。 | 
        
is_null_call | 
            character varying | 
            未使用。 值始终为 NULL。 | 
        
sql_path | 
            character varying | 
            未使用。 值始终为 NULL。 | 
        
schema_level_routine | 
            character varying | 
            未使用。 值始终为 NULL。 | 
        
max_dynamic_result_sets | 
            character varying | 
            未使用。 值始终为 NULL。 | 
        
is_user_defined_cast | 
            character varying | 
            未使用。 值始终为 NULL。 | 
        
is_implicitly_invocable | 
            character varying | 
            未使用。 值始终为 NULL。 | 
        
security_type | 
            character varying | 
            例程的安全类型。仅支持 INVOKER。 | 
        
to_sql_specific_catalog | 
            character varying | 
            未使用。 值始终为 NULL。 | 
        
to_sql_specific_schema | 
            character varying | 
            未使用。 值始终为 NULL。 | 
        
to_sql_specific_name | 
            character varying | 
            未使用。 值始终为 NULL。 | 
        
as_locator | 
            character varying | 
            未使用。 值始终为 NULL。 | 
        
created | 
            timestamp with time zone | 
            未使用。 值始终为 NULL。 | 
        
last_altered | 
            timestamp with time zone | 
            未使用。 值始终为 NULL。 | 
        
new_savepoint_level | 
            character varying | 
            未使用。 值始终为 NULL。 | 
        
is_udt_dependent | 
            character varying | 
            未使用。 值始终为 NULL。 | 
        
result_cast_from_data_type | 
            character varying | 
            未使用。 值始终为 NULL。 | 
        
result_cast_as_locator | 
            character varying | 
            未使用。 值始终为 NULL。 | 
        
result_cast_char_max_length | 
            bigint | 
            未使用。 值始终为 NULL。 | 
        
result_cast_char_octet_length | 
            bigint | 
            未使用。 值始终为 NULL。 | 
        
result_cast_char_set_catalog | 
            character varying | 
            未使用。 值始终为 NULL。 | 
        
result_cast_char_set_schema | 
            character varying | 
            未使用。 值始终为 NULL。 | 
        
result_cast_char_set_name | 
            character varying | 
            未使用。 值始终为 NULL。 | 
        
result_cast_collation_catalog | 
            character varying | 
            未使用。 值始终为 NULL。 | 
        
result_cast_collation_schema | 
            character varying | 
            未使用。 值始终为 NULL。 | 
        
result_cast_collation_name | 
            character varying | 
            未使用。 值始终为 NULL。 | 
        
result_cast_numeric_precision | 
            bigint | 
            未使用。 值始终为 NULL。 | 
        
result_cast_numeric_precision_radix | 
            bigint | 
            未使用。 值始终为 NULL。 | 
        
result_cast_numeric_scale | 
            bigint | 
            未使用。 值始终为 NULL。 | 
        
result_cast_datetime_precision | 
            bigint | 
            未使用。 值始终为 NULL。 | 
        
result_cast_interval_type | 
            character varying | 
            未使用。 值始终为 NULL。 | 
        
result_cast_interval_precision | 
            bigint | 
            未使用。 值始终为 NULL。 | 
        
result_cast_type_udt_catalog | 
            character varying | 
            未使用。 值始终为 NULL。 | 
        
result_cast_type_udt_schema | 
            character varying | 
            未使用。 值始终为 NULL。 | 
        
result_cast_type_udt_name | 
            character varying | 
            未使用。 值始终为 NULL。 | 
        
result_cast_scope_catalog | 
            character varying | 
            未使用。 值始终为 NULL。 | 
        
result_cast_scope_schema | 
            character varying | 
            未使用。 值始终为 NULL。 | 
        
result_cast_scope_name | 
            character varying | 
            未使用。 值始终为 NULL。 | 
        
result_cast_maximum_cardinality | 
            bigint | 
            未使用。 值始终为 NULL。 | 
        
result_cast_dtd_identifier | 
            character varying | 
            未使用。 值始终为 NULL。 | 
        
schemata
information_schema.schemata 视图对于当前数据库中的每个架构都包含对应的一行。架构包括信息架构和一个名为 public 的默认架构。
| 列名 | 类型 | 说明 | 
|---|---|---|
catalog_name | 
    character varying | 
    数据库名称。 | 
schema_name | 
    character varying | 
    架构的名称。这对于默认架构设置为 public,对于命名架构为非空。 | 
 
schema_owner | 
    character varying | 
    架构的所有者的名称。 | 
default_character_set_catalog | 
    character varying | 
    未使用。 | 
default_character_set_schema | 
    character varying | 
    未使用。 | 
default_character_set_name | 
    character varying | 
    未使用。 | 
sql_path | 
    character varying | 
    未使用。 | 
effective_timestamp | 
    timestamp with timezone | 
    相应架构中所有数据生效的时间戳。这仅用于默认架构。 | 
sequences
information_schema.sequences 视图包含 sequences 元数据。
| 列名 | 类型 | 说明 | 
|---|---|---|
sequence_catalog | 
    character varying | 
    数据库名称。 | 
sequence_schema | 
    character varying | 
    序列架构的名称。对于 PostgreSQL 方言数据库,默认值为 public。 | 
  
sequence_name | 
    character varying | 
    序列的名称。 | 
data_type | 
    character varying | 
    序列仅支持 int8。 | 
  
numeric_precision | 
    bigint | 
    未使用。 值始终为“NULL”。 | 
numeric_precision_radix | 
    bigint | 
    未使用。 值始终为“NULL”。 | 
numeric_scale | 
    bigint | 
    未使用。 值始终为“NULL”。 | 
start_value | 
    bigint | 
    未使用。 值始终为“NULL”。 | 
minimum_value | 
    bigint | 
    未使用。 值始终为“NULL”。 | 
maximum_value | 
    bigint | 
    未使用。 值始终为“NULL”。 | 
increment | 
    bigint | 
    未使用。 值始终为“NULL”。 | 
cycle_option | 
    character varying | 
    sequence 接受的唯一选项是 no。 | 
  
sequence_kind | 
    character varying | 
    序列的种类。bit_reversed_positive 是唯一可接受的值。 | 
  
counter_start_value | 
    bigint | 
    序列计数器的起始值。 | 
skip_range_min | 
    bigint | 
    跳过范围内的最小值。如果未设置,则此值为 NULL。 | 
  
skip_range_max | 
    bigint | 
    跳过范围内的最大值。如果未设置,则此值为 NULL。 | 
  
spanner_statistics
下表列出了可用的查询优化器统计信息软件包。
| 列名 | 类型 | 说明 | 
|---|---|---|
catalog_name | 
    character varying | 
    数据库名称。 | 
schema_name | 
    character varying | 
    架构的名称。默认架构值为 public。 | 
  
package_name | 
    character varying | 
    统计信息软件包的名称。 | 
allow_gc | 
    character varying | 
    统计信息软件包是否从垃圾回收中排除。根据 SQL 标准,该字符串可以是 YES 或 NO,但不能是布尔值。此属性必须设置为 NO,然后才能在提示中或通过客户端 API 引用统计信息软件包。
     | 
  
table_constraints
此视图包含属于当前用户有权访问的表的所有限制条件(SELECT 除外)。
| 列名 | 类型 | 说明 | 
|---|---|---|
constraint_catalog | 
    character varying | 
    数据库名称。 | 
constraint_schema | 
    character varying | 
    包含限制条件的架构的名称。 | 
constraint_name | 
    character varying | 
    限制条件的名称。 | 
table_catalog | 
    character varying | 
    数据库名称。 | 
table_schema | 
    character varying | 
    包含与限制条件关联的表的架构的名称。 | 
table_name | 
    character varying | 
    表的名称。 | 
constraint_type | 
    character varying | 
    限制条件的类型。可能的 
  | 
 
is_deferrable | 
    character varying | 
    值始终为 NO。 | 
 
initially_deferred | 
    character varying | 
    值始终为 NO。 | 
 
enforced | 
    character varying | 
    是否强制执行限制条件。如果强制执行某个限制条件(在达到特定状态后),系统会在写入时以及通过后台完整性验证程序验证该限制条件。根据 SQL 标准,该字符串可以是 YES 或 NO,但不能是布尔值。 | 
 
table_privileges
此行过滤视图会列出向任何数据库角色(包括 public)授予的针对所有表和视图的所有精细访问权限控制权限。具有数据库级 IAM 权限的主账号以及被授予 spanner_info_reader 系统角色或该角色成员访问权限的主账号可以查看此视图中的所有行。所有其他主账号只能查看向当前数据库角色、当前数据库角色所属的角色或 public 授予的针对表和视图的权限。
| 列名 | 类型 | 说明 | 
|---|---|---|
grantor | 
            character varying | 
            未使用。 始终为 NULL。 | 
        
grantee | 
            character varying | 
            被授予相应权限的数据库角色的名称。 | 
table_catalog | 
            character varying | 
            数据库名称。 | 
table_schema | 
            character varying | 
            包含表或视图的架构的名称。对于 PostgreSQL 方言数据库,默认值为 public。 | 
        
table_name | 
            character varying | 
            表或视图的名称。 | 
privilege_type | 
            character varying | 
            权限的类型(SELECT、INSERT、UPDATE 或 DELETE)。 | 
        
is_grantable | 
            character varying | 
            未使用。 始终为 NO。 | 
        
that have_hierarchy | 
            character varying | 
            未使用。 始终为 NULL。 | 
        
tables
此行过滤视图会列出当前数据库中的所有表和视图。具有数据库级 IAM 权限的主账号以及被授予 spanner_info_reader 系统角色或该角色成员访问权限的主账号可以查看所有表和视图。所有其他主账号只能查看满足以下任一要求的表:
- 
    针对表的 
SELECT、INSERT、UPDATE或DELETE精细访问权限控制权限被授予给当前数据库角色、当前数据库角色所属的角色或public。 - 针对任何表列的 
SELECT、INSERT或UPDATE权限被授予给当前数据库角色、当前数据库角色所属的角色或public。 
| 列名 | 类型 | 说明 | 
|---|---|---|
table_catalog | 
    character varying | 
    数据库名称。 | 
table_schema | 
    character varying | 
    包含表或视图的架构的名称。 | 
table_name | 
    character varying | 
    表、视图或同义词的名称。 | 
table_type | 
    character varying | 
    表类型。可能的值包括“BASE TABLE”“VIEW”或“SYNONYM”。 | 
self_referencing_column_name | 
    character varying | 
    未使用。 | 
reference_generation | 
    character varying | 
    未使用。 | 
user_defined_type_catalog | 
    character varying | 
    未使用。 | 
user_defined_type_schema | 
    character varying | 
    未使用。 | 
user_defined_type_name | 
    character varying | 
    未使用。 | 
is_insertable_into | 
    character varying | 
    未使用。 | 
is_typed | 
    character varying | 
    未使用。 | 
commit_action | 
    character varying | 
    未使用。 | 
parent_table_name | 
    character varying | 
    如果此表是交织表,则为父表的名称,否则为 NULL。 | 
 
on_delete_action | 
    character varying | 
    这对于交织表设置为 CASCADE 或 NO ACTION,否则设置为 NULL。如需了解详情,请参阅 TABLE 语句。 | 
 
spanner_state | 
    character varying | 
    表的当前创建状态。 如果涉及批量操作,则表在创建期间可能会经历多个状态,例如在使用需要回填其被引用索引的外键创建表时。可能的状态包括: 
  | 
 
interleave_type | 
    character varying | 
    此表与其交织表之间是否存在父子关系。可能的 
  | 
 
row_deletion_policy_expression | 
    character varying | 
    包含定义 ROW
      DELETION POLICY 的表达式文本的字符串。 | 
 
table_synonyms
此表会列出表的同义词信息。
| 列名 | 类型 | 说明 | 
|---|---|---|
CATALOG | 
  STRING | 
  包含表的目录的名称。 | 
SCHEMA | 
  STRING | 
  包含表的架构的名称。 | 
TABLE_NAME | 
  STRING | 
  表的名称。 | 
SYNONYM_CATALOG | 
  STRING | 
   同义词的对应目录的名称。 | 
SYNONYM_SCHEMA | 
  STRING | 
  同义词的对应架构的名称。 | 
SYNONYM_TABLE_NAME | 
  STRING | 
  同义词的对应表的名称。 | 
views
此行过滤视图会列出当前数据库中的所有视图。具有数据库级 IAM 权限的主账号以及被授予 spanner_info_reader 系统角色或该角色成员访问权限的主账号可以查看所有视图。所有其他主账号只能查看其 SELECT 精细访问权限控制权限被授予给当前数据库角色、当前数据库角色所属的角色或 public 的视图。
| 列名 | 类型 | 说明 | 
|---|---|---|
table_catalog | 
    character varying | 
    数据库名称。 | 
table_schema | 
    character varying | 
    架构的名称。默认值为 public。 | 
 
table_name | 
    character varying | 
    视图的名称。 | 
view_definition | 
    character varying | 
    定义视图的查询的 SQL 文本。 | 
check_option | 
    character varying | 
    未使用。 | 
is_updatable | 
    character varying | 
    未使用。 | 
is_insertable_into | 
    character varying | 
    未使用。 | 
is_trigger_updatable | 
    character varying | 
    未使用。 | 
is_trigger_deletable | 
    character varying | 
    未使用。 | 
is_trigger_insertable_into | 
    character varying | 
    未使用。 | 
security_type | 
    character varying | 
    视图的安全类型。INVOKER 或 DEFINER。
    如需了解详情,请参阅视图简介。  | 
 
示例
返回有关用户架构中每个表的信息:
SELECT
  t.table_schema,
  t.table_catalog,
  t.table_name,
  t.parent_table_name
FROM
  information_schema.tables AS t
WHERE
  t.table_schema NOT IN ('pg_catalog', 'information_schema', 'SPANNER_SYS')
  AND t.table_type = 'BASE TABLE'
ORDER BY
  t.table_catalog,
  t.table_schema,
  t.table_name
返回 PostgreSQL 方言数据库的 information_schema 中所有表和视图的名称:
SELECT table_name
FROM information_schema.tables
WHERE table_schema = "information_schema"
返回默认架构中用户表 my_table 的列的相关信息:
SELECT
  t.ordinal_position,
  t.column_name,
  t.data_type,
  t.spanner_type,
  t.is_nullable
FROM
  information_schema.columns AS t
WHERE
  t.table_schema = 'public'
  AND
  t.table_name = 'my_table'
ORDER BY
  t.ordinal_position
返回当前数据库中默认架构内每个索引的相关信息: ```postgresql SELECT t.table_name, t.index_name, t.parent_table_name FROM information_schema.indexes AS t WHERE t.table_schema = 'public' AND t.index_type != 'PRIMARY_KEY' ORDER BY t.table_schema, t.table_name, t.index_name
返回默认架构中使用非默认选项的列:
SELECT
  t.table_name,
  t.column_name,
  t.option_type,
  t.option_value,
  t.option_name
FROM
  information_schema.column_options AS t
WHERE
  t.table_schema = 'public'
ORDER BY
  t.table_schema,
  t.table_name,
  t.column_name,
  t.option_name
返回当前与优化器相关的数据库选项:
SELECT
  s.option_name,
  s.option_value
FROM
  information_schema.database_options s
WHERE
  s.schema_name='public'
  AND s.option_name IN ('optimizer_version',
    'optimizer_statistics_package')
返回所有可用的统计信息软件包:
SELECT *
FROM information_schema.spanner_statistics;
后续步骤
- 了解可用的内省工具以帮助您调查数据库问题。