信息架构是每个 Spanner 数据库通用的内置架构。您可以对 INFORMATION_SCHEMA 中的表运行 SQL 查询来提取数据库的架构元数据。
例如,以下查询可提取数据库中所有用户定义的表的名称:
  SELECT
    table_schema,
    table_name
  FROM
    information_schema.tables
  WHERE
    table_schema NOT IN ('information_schema', 'SPANNER_SYS')
    AND table_type = 'BASE TABLE'
精细访问权限控制用户可查看某些 INFORMATION_SCHEMA 表的过滤结果,具体取决于其数据库角色。如需了解详情,请参阅精细访问权限控制简介。
用法
INFORMATION_SCHEMA 表只能通过 SQL 接口进行使用,例如:
executeQueryAPIgcloud spanner databases execute-sql命令- Google Cloud 控制台中数据库的 Spanner Studio 页面
 
其他单次读取方法不支持 INFORMATION_SCHEMA。
以下是一些额外的 INFORMATION_SCHEMA 使用说明:
- 针对 
INFORMATION_SCHEMA的查询可以用于只读事务,但不能用于读写事务。 - 针对 
INFORMATION_SCHEMA的查询可以使用强、有界限过时或精确过时时间戳边界。 - 如果您使用的是 PostgreSQL 方言数据库,请参阅 PostgreSQL 方言数据库的信息架构。
 - 如果您是精细访问权限控制用户,系统会过滤 
INFORMATION_SCHEMA表,以便仅显示您有权访问的架构元素。 
information_schema 表中的行过滤
具有数据库级 IAM 权限的主账号以及被授予 spanner_info_reader 系统角色或该角色成员访问权限的主账号可以查看所有 information_schema 表中的所有行。对于其他主账号,系统会根据当前数据库角色过滤某些表的行。以下部分中的表和视图说明指明了如何针对每个表和视图应用行过滤。
INFORMATION_SCHEMA 中的表
以下各部分介绍了 GoogleSQL 方言数据库的 INFORMATION_SCHEMA 中的表。
SCHEMATA
INFORMATION_SCHEMA.SCHEMATA 表列出了数据库中的架构。这些架构包括信息架构以及包含您定义的表的命名架构。
| 列名 | 类型 | 说明 | 
|---|---|---|
CATALOG_NAME | 
    STRING | 
    目录的名称。此列是为了与 SQL 标准信息架构表保持兼容而存在的。此列始终是一个空字符串。 | 
SCHEMA_NAME | 
    STRING | 
    架构的名称。对于命名架构,这是架构的名称;对于默认架构,这是空字符串。 | 
PROTO_BUNDLE | 
    STRING | 
    如果数据库包含 proto 数据包语句,此列会提供有关架构中所用 proto 数据包的信息。如果数据库中不存在任何 proto 数据包,则此列为 NULL。 | 
DATABASE_OPTIONS
此表列出了在数据库上设置的选项。
| 列名 | 类型 | 说明 | 
|---|---|---|
CATALOG_NAME | 
    STRING | 
    目录的名称。始终为空字符串。 | 
SCHEMA_NAME | 
    STRING | 
    架构的名称。如果未命名,则为空字符串。 | 
OPTION_NAME | 
    STRING | 
    数据库选项的名称。 | 
OPTION_TYPE | 
    STRING | 
    数据库选项的数据类型。 | 
OPTION_VALUE | 
    STRING | 
    数据库选项值。 | 
PLACEMENTS
此表列出数据库中的布置。
| 列名 | 类型 | 说明 | 
|---|---|---|
PLACEMENT_NAME | 
    STRING | 
    布置的名称。 | 
IS_DEFAULT | 
    BOOL | 
    一个布尔值,用于指示布置是否为默认布置。 | 
PLACEMENT_OPTIONS
对于每个布置,此表会列出在 CREATE PLACEMENT 语句的 OPTIONS 子句中对布置设置的选项。
OPTION_NAME 的有效值包括:
instance_partitiondefault_leader
| 列名 | 类型 | 说明 | 
|---|---|---|
PLACEMENT_NAME | 
    STRING | 
    布置的名称。 | 
OPTION_NAME | 
    STRING | 
    布置选项的名称。 | 
OPTION_TYPE | 
    STRING | 
    布置选项的数据类型。对于两个选项,这都为 STRING(MAX)。 | 
 
OPTION_VALUE | 
    STRING | 
    布置选项的值。对于 instance_partition,这是实例分区的名称。对于 default_leader,这是默认主要区域的名称。 | 
 
LOCALITY_GROUP_OPTIONS
对于每个存放区域组,此表列出了在 CREATE LOCALITY GROUP 语句的 OPTIONS 子句中对存放区域组设置的名称和选项。
| 列名 | 类型 | 说明 | 
|---|---|---|
LOCALITY_GROUP_NAME | 
    STRING | 
    存放区域组的名称。 | 
OPTION_NAME | 
    STRING | 
    存放区域组选项的名称。有效选项包括:
      
  | 
 
OPTION_VALUE | 
    STRING | 
    存放区域组选项的值。对于 STORAGE,这是 ssd 或 hdd。对于 SSD_TO_HDD_SPILL_TIMESPAN,这是数据必须在 SSD 中存储的时间量(在数据移至 HDD 存储空间之前)。例如,10d 为 10 天。您可以设置的最小时间量为 1 小时。 | 
 
TABLES
此行过滤表会列出数据库中的表和视图。具有数据库级 IAM 权限的主账号以及被授予 spanner_info_reader 系统角色或该角色成员访问权限的主账号可以查看此视图中的所有行。所有其他主账号只能查看满足以下任一要求的表:
- 
    针对表的 
SELECT、INSERT、UPDATE或DELETE精细访问权限控制权限被授予给当前数据库角色、当前数据库角色所属的角色或public。 - 针对任何表列的 
SELECT、INSERT或UPDATE权限被授予给当前数据库角色、当前数据库角色所属的角色或public。 
| 列名 | 类型 | 说明 | 
|---|---|---|
TABLE_CATALOG | 
    STRING | 
    未使用。 始终为空字符串。 | 
TABLE_SCHEMA | 
    STRING | 
    表的架构名称。该名称对于默认架构为空,对于其他架构包含相应值。此列始终包含值。 | 
TABLE_NAME | 
    STRING | 
    表、视图或同义词的名称。 | 
TABLE_TYPE | 
    STRING | 
    表的类型。对于表,其值为 BASE TABLE;对于视图,其值为 VIEW;对于同义词,其值为 SYNONYM。 | 
 
PARENT_TABLE_NAME | 
    STRING | 
    如果相应表是交织表,则为父表的名称,否则为 NULL。 | 
 
ON_DELETE_ACTION | 
    STRING | 
    这对于交织表设置为 CASCADE 或 NO ACTION,否则设置为 NULL。如需了解详情,请参阅 TABLE 语句。 | 
 
SPANNER_STATE | 
    STRING | 
   如果涉及批量操作,则表在创建期间可能会经历多个状态。例如,在使用需要回填其索引的外键创建表时。可能的状态包括:
  | 
 
INTERLEAVE_TYPE | 
    STRING | 
   用于指示相应表与其交织表之间是否存在父子关系的表达式文本。可能的值包括:
     
  | 
 
ROW_DELETION_POLICY_EXPRESSION | 
    STRING | 
   用于定义表的行删除政策的表达式文本。例如 OLDER_THAN(CreatedAt, INTERVAL 1 DAY) 或 OLDER_THAN(ExpiredDate, INTERVAL 0 DAY)。
     | 
 
COLUMNS
此行过滤表会列出表中的列。具有数据库级 IAM 权限的主账号以及被授予 spanner_info_reader 系统角色或该角色成员访问权限的主账号可以查看此视图中的所有行。所有其他主账号只能查看满足以下任一要求的列:
- 针对列的 
SELECT、INSERT或UPDATE精细访问权限控制权限中的任何一项被直接授予给当前数据库角色、当前数据库角色所属的角色或public。 - 针对包含列的表的 
SELECT、INSERT或UPDATE精细访问权限控制权限中的任何一项被授予给当前数据库角色、当前数据库角色所属的角色或public。 
| 列名 | 类型 | 说明 | 
|---|---|---|
TABLE_CATALOG | 
    STRING | 
    未使用。 始终为空字符串。 | 
TABLE_SCHEMA | 
    STRING | 
    列所属的表的架构名称。该名称对于默认架构为空,对于其他架构包含相应值。此列始终包含值。 | 
TABLE_NAME | 
    STRING | 
    表的名称。 | 
COLUMN_NAME | 
    STRING | 
    列的名称。 | 
ORDINAL_POSITION | 
    INT64 | 
    表中列的序号位置,从 1 开始。 | 
COLUMN_DEFAULT | 
    STRING | 
    
       
        列的默认值的 SQL 表达式的字符串表示形式。如果列没有默认值,则为  
        注意:在 2022 年 3 月之前,  | 
 
DATA_TYPE | 
    STRING | 
    包含在内,用于满足 SQL 标准。始终为 NULL。 请参阅列 SPANNER_TYPE | 
 
IS_NULLABLE | 
    STRING | 
    指明列是否可以为 Null 的字符串。根据 SQL 标准,该字符串可以是 YES 或 NO,但不能是布尔值。 | 
 
SPANNER_TYPE | 
    STRING | 
    列的数据类型。 | 
IS_GENERATED | 
    STRING | 
    指明是否生成列的字符串。对于生成的列,字符串为 ALWAYS;对于非生成的列,该字符串为 NEVER。 | 
 
GENERATION_EXPRESSION | 
    STRING | 
     表示所生成列的 SQL 表达式的字符串。如果该列不是生成的列,则为 NULL。 | 
 
IS_STORED | 
    STRING | 
     指明是否存储生成的列的字符串。对于生成的列,字符串始终为 YES;对于非生成的列,该字符串始终为 NULL。 | 
 
IS_HIDDEN | 
    STRING | 
     一个字符串,如果列未出现在 SELECT * 查询中,则设置为 TRUE;否则设置为 FALSE。如果列处于隐藏状态,您仍然可以使用其名称来选择列(例如 SELECT Id, Name, ColHidden FROM TableWithHiddenColumn)。 | 
 
SPANNER_STATE | 
    STRING | 
    列的当前状态。向现有表添加的新的生成的已存储列可能需要经过多个用户可观察状态才能充分利用。可能的 
  | 
 
IS_IDENTITY | 
    STRING | 
     一个字符串,如果生成列是标识列,则设置为 YES;否则设置为 NO。 | 
 
IDENTITY_GENERATION | 
    STRING | 
     一个字符串,用于指定列是否仅允许使用生成的值,而不允许使用用户插入的自定义值。
      
  | 
 
IDENTITY_KIND | 
    STRING | 
     始终为 BIT_REVERSED_POSITITVE_SEQUENCE。 仅支持位反转正值序列。
     | 
 
IDENTITY_START_WITH_COUNTER | 
    STRING | 
    转换前内部计数器的起始值。例如,位反转之前的起始值。 | 
IDENTITY_SKIP_RANGE_MIN | 
    STRING | 
    转换后跳过范围的最小值。 | 
IDENTITY_SKIP_RANGE_MAX | 
    STRING | 
    转换后跳过范围的最大值。 | 
COLUMN_PRIVILEGES
此行过滤表会列出在列级向任何数据库角色(包括 public)授予的所有权限。具有数据库级 IAM 权限的主账号以及被授予 spanner_info_reader 系统角色或该角色成员访问权限的主账号可以查看此视图中的所有行。所有其他主账号只能查看满足以下任一要求的列的权限:
- 针对列的 
SELECT、INSERT或UPDATE精细访问权限控制权限中的任何一项被直接授予给当前数据库角色、当前数据库角色所属的角色或public。 - 针对包含列的表的 
SELECT、INSERT或UPDATE精细访问权限控制权限中的任何一项被授予给当前数据库角色、当前数据库角色所属的角色或public。 
| 列名 | 类型 | 说明 | 
|---|---|---|
TABLE_CATALOG | 
    STRING | 
    未使用。 始终为空字符串。 | 
TABLE_SCHEMA | 
    STRING | 
    列所属的表的架构名称。该名称对于默认架构为空,对于其他架构包含相应值。此列始终包含值。 | 
TABLE_NAME | 
    STRING | 
    包含特权列的表的名称。 | 
COLUMN_NAME | 
    STRING | 
    特权列的名称。 | 
PRIVILEGE_TYPE | 
    STRING | 
    SELECT、INSERT、UPDATE | 
 
GRANTEE | 
    STRING | 
    被授予相应权限的数据库角色的名称。 | 
TABLE_PRIVILEGES
此行过滤表会列出在表级向数据库角色(包括 public)授予的所有权限。具有数据库级 IAM 权限的主账号以及被授予 spanner_info_reader 系统角色或该角色成员访问权限的主账号可以查看此视图中的所有行。所有其他主账号只能查看满足以下条件的表的权限:针对表的 SELECT、INSERT、UPDATE 或 DELETE 精细访问权限控制权限中的任何一项被授予给当前数据库角色、当前数据库角色所属的角色或 public。
| 列名 | 类型 | 说明 | 
|---|---|---|
TABLE_CATALOG | 
    STRING | 
    未使用。 始终为空字符串。 | 
TABLE_SCHEMA | 
    STRING | 
    表的架构名称。该名称对于默认架构为空,对于其他架构包含相应值。此列始终包含值。 | 
TABLE_NAME | 
    STRING | 
    针对其授予精细访问权限控制权限的表的名称。 | 
PRIVILEGE_TYPE | 
    STRING | 
    SELECT、INSERT、UPDATE 和 DELETE 中的一项 | 
 
GRANTEE | 
    STRING | 
    被授予相应权限的数据库角色的名称。 | 
TABLE_CONSTRAINTS
此表为数据库中的表定义的每个限制条件都包含了一行。
| 列名 | 类型 | 说明 | 
|---|---|---|
CONSTRAINT_CATALOG | 
    STRING | 
    始终为空字符串。 | 
CONSTRAINT_SCHEMA | 
    STRING | 
    限制条件的架构名称。如果未命名,则为空字符串。 | 
CONSTRAINT_NAME | 
    STRING | 
    限制条件的名称。 | 
TABLE_CATALOG | 
    STRING | 
    受限表的目录名称。始终为空字符串。 | 
TABLE_SCHEMA | 
    STRING | 
    受限表的架构名称。该名称对于默认架构为空,对于其他架构包含相应值。此列始终包含值。 | 
TABLE_NAME | 
    STRING | 
    受限表的名称。 | 
CONSTRAINT_TYPE | 
    STRING | 
    限制条件的类型。可能的 
  | 
 
IS_DEFERRABLE | 
    STRING | 
    始终为 NO。 | 
 
INITIALLY_DEFERRED | 
    STRING | 
    始终为 NO。 | 
 
ENFORCED | 
    STRING | 
    如果限制条件是信息性 (NOT ENFORCED) 外键,则为 NO。对于强制执行的外键或任何其他限制条件类型,为 YES。
     | 
 
CONSTRAINT_TABLE_USAGE
此表列出了定义限制条件或限制条件使用的表。包括用于定义 PRIMARY KEY 和 UNIQUE 限制条件的表。此外,还包括引用的 FOREIGN KEY 定义的表。
| 列名 | 类型 | 说明 | 
|---|---|---|
TABLE_CATALOG | 
    STRING | 
    受限表的目录名称。始终为空字符串。 | 
TABLE_SCHEMA | 
    STRING | 
    受限表的架构名称。该名称对于默认架构为空,对于其他架构包含相应值。此列始终包含值。 | 
TABLE_NAME | 
    STRING | 
    受限表的名称。 | 
CONSTRAINT_CATALOG | 
    STRING | 
    限制条件的目录名称。始终为空字符串。 | 
CONSTRAINT_SCHEMA | 
    STRING | 
    限制条件的架构名称。如果未命名,则为空字符串。 | 
CONSTRAINT_NAME | 
    STRING | 
    限制条件的名称。 | 
REFERENTIAL_CONSTRAINTS
此表包含一行有关每个 FOREIGN KEY 限制条件的信息。
| 列名 | 类型 | 说明 | 
|---|---|---|
CONSTRAINT_CATALOG | 
    STRING | 
    外键的目录名称。始终为空字符串。 | 
CONSTRAINT_SCHEMA | 
    STRING | 
    外键的架构名称。如果未命名,则为空字符串。 | 
CONSTRAINT_NAME | 
    STRING | 
    外键的名称。 | 
UNIQUE_CONSTRAINT_CATALOG | 
    STRING | 
    外键引用的主键或唯一限制条件的目录名称。始终为空字符串。 | 
UNIQUE_CONSTRAINT_SCHEMA | 
    STRING | 
    外键引用的主键或唯一限制条件的架构名称。如果未命名,则为空字符串。 | 
UNIQUE_CONSTRAINT_NAME | 
    STRING | 
    外键引用的主键或唯一限制条件的名称。 | 
MATCH_OPTION | 
    STRING | 
    始终为 SIMPLE。 | 
 
UPDATE_RULE | 
    STRING | 
    始终为 NO ACTION。 | 
 
DELETE_RULE | 
    STRING | 
    CASCADE 或 NO ACTION。 | 
 
SPANNER_STATE | 
    STRING | 
   外键的当前状态。在创建和回填外键的支持性索引之前,Spanner 不会开始强制执行限制条件。索引准备就绪后,Spanner 会在验证现有数据时开始对新事务强制执行限制条件。可能的值和它们所代表的状态如下:
  | 
 
CHECK_CONSTRAINTS
information_schema.CHECK_CONSTRAINTS 表包含关于 CHECK 或 NOT NULL 关键字定义的各个 CHECK 限制条件的一行。
| 列名 | 类型 | 说明 | 
|---|---|---|
CONSTRAINT_CATALOG | 
    STRING | 
    限制条件的目录名称。此列从来不会为 null,但始终为空字符串。 | 
CONSTRAINT_SCHEMA | 
    STRING | 
    限制条件的架构名称。如果未命名,则为空字符串。 | 
CONSTRAINT_NAME | 
    STRING | 
    限制条件的名称。此列从来不会为 null。如果未在架构定义中明确指定,将分配系统定义的名称。 | 
CHECK_CLAUSE | 
    STRING | 
    CHECK 限制条件的表达式。此列从来不会为 null。 | 
  
SPANNER_STATE | 
    STRING | 
    CHECK 限制条件的当前状态。此列从来不会为 null。 可能的状态如下:
  | 
  
KEY_COLUMN_USAGE
对于 TABLE_CONSTRAINTS 中以键形式受到 PRIMARY KEY、FOREIGN
KEY 或 UNIQUE 限制条件制约的表的每一列,此行过滤表都包含对应的一行。具有数据库级 IAM 权限的主账号以及被授予 spanner_info_reader 系统角色或该角色成员访问权限的主账号可以查看此视图中的所有行。所有其他主账号只能查看满足以下条件的列:
- 针对列的 
SELECT、INSERT或UPDATE精细访问权限控制权限中的任何一项被直接授予给当前数据库角色、当前数据库角色所属的角色或public。 - 针对包含列的表的 
SELECT、INSERT或UPDATE精细访问权限控制权限中的任何一项被授予给当前数据库角色、当前数据库角色所属的角色或public。 
| 列名 | 类型 | 说明 | 
|---|---|---|
CONSTRAINT_CATALOG | 
    STRING | 
    限制条件的目录名称。始终为空字符串。 | 
CONSTRAINT_SCHEMA | 
    STRING | 
    限制条件的架构名称。此列从来不会为 null。如果未命名,则为空字符串。 | 
CONSTRAINT_NAME | 
    STRING | 
    限制条件的名称。 | 
TABLE_CATALOG | 
    STRING | 
    受限列的目录名称。始终为空字符串。 | 
TABLE_SCHEMA | 
    STRING | 
    受限列所属的表的架构名称。该名称对于默认架构为空,对于其他架构包含相应值。此列始终包含值。 | 
TABLE_NAME | 
    STRING | 
    受限列的表的名称。 | 
COLUMN_NAME | 
    STRING | 
    列的名称。 | 
ORDINAL_POSITION | 
    INT64 | 
    列在限制条件键中的序号位置,从值 1 开始。 | 
 
POSITION_IN_UNIQUE_CONSTRAINT | 
    INT64 | 
    对于 FOREIGN KEY,为列在唯一限制条件中的序号位置,从值 1 开始。对于其他限制条件类型,此列为 null。 | 
 
CONSTRAINT_COLUMN_USAGE
此表包含一行有关限制条件使用的每一列的信息。包括 PRIMARY KEY 和 UNIQUE 列,以及 FOREIGN KEY 限制条件的被引用列。
| 列名 | 类型 | 说明 | 
|---|---|---|
TABLE_CATALOG | 
    STRING | 
    列表的目录名称。始终为空字符串。 | 
TABLE_SCHEMA | 
    STRING | 
    列所属的表的架构名称。该名称对于默认架构为空,对于其他架构包含相应值。此列始终包含值。 | 
TABLE_NAME | 
    STRING | 
    列的表名称。 | 
COLUMN_NAME | 
    STRING | 
    限制条件使用的列的名称。 | 
CONSTRAINT_CATALOG | 
    STRING | 
    限制条件的目录名称。始终为空字符串。 | 
CONSTRAINT_SCHEMA | 
    STRING | 
    限制条件的架构名称。如果未命名,则为空字符串。 | 
CONSTRAINT_NAME | 
    STRING | 
    限制条件的名称。 | 
TABLE_SYNONYMS
此表会列出表的同义词信息。
| 列名 | 类型 | 说明 | 
|---|---|---|
TABLE_CATALOG | 
    STRING | 
    未使用。 始终为空字符串。 | 
TABLE_SCHEMA | 
    STRING | 
    表的架构名称。该名称对于默认架构为空,对于其他架构包含相应值。此列始终包含值。 | 
TABLE_NAME | 
    STRING | 
    表的名称。 | 
SYNONYM_CATALOG | 
    STRING | 
    同义词的对应目录的名称。 | 
SYNONYM_SCHEMA | 
    STRING | 
    同义词的对应架构的名称。 | 
SYNONYM_TABLE_NAME | 
    STRING | 
    同义词的对应表的名称。 | 
INDEXES
此行过滤表会列出数据库中的索引。具有数据库级 IAM 权限的主账号以及被授予 spanner_info_reader 系统角色或该角色成员访问权限的主账号可以查看此视图中的所有行。所有其他主账号只能查看满足以下任一要求的索引:
- 针对索引中所有列的 
SELECT、INSERT或UPDATE精细访问权限控制权限中的任何一项在列级被授予给当前数据库角色、当前数据库角色所属的角色或public。 - 针对具有索引的表的 
SELECT、INSERT、UPDATE或DELETE精细访问权限控制权限中的任何一项被授予给当前数据库角色、当前数据库角色所属的角色或public。 
| 列名 | 类型 | 说明 | 
|---|---|---|
TABLE_CATALOG | 
    STRING | 
    目录的名称。始终为空字符串。 | 
TABLE_SCHEMA | 
    STRING | 
    索引表的架构名称。该名称对于默认架构为空,对于其他架构包含相应值。此列始终包含值。 | 
TABLE_NAME | 
    STRING | 
    表的名称。 | 
INDEX_NAME | 
    STRING | 
    索引的名称。具有 PRIMARY KEY 规范的表具有使用名称 PRIMARY_KEY 生成的伪索引条目,这可以确定主键的字段。 | 
 
INDEX_TYPE | 
    STRING | 
    索引的类型。类型是 INDEX 或 PRIMARY_KEY。 | 
 
PARENT_TABLE_NAME | 
    STRING | 
    二级索引可以在父表中交织,如创建二级索引中所述。此列保存该父表的名称,如果索引未交织,则为空字符串。 | 
IS_UNIQUE | 
    BOOL | 
    索引键是否必须是唯一的。 | 
IS_NULL_FILTERED | 
    BOOL | 
    索引是否包含值为 NULL 的条目。 | 
 
INDEX_STATE | 
    STRING | 
    索引的当前状态。可能的值和它们所代表的状态如下:
    
  | 
 
SPANNER_IS_MANAGED | 
    BOOL | 
    如果索引由 Spanner 管理,则为 TRUE;否则为 FALSE。外键的二级支持性索引由 Spanner 管理。 | 
 
INDEX_COLUMNS
此行过滤表会列出索引中的列。具有数据库级 IAM 权限的主账号以及被授予 spanner_info_reader 系统角色或该角色成员访问权限的主账号可以查看此视图中的所有行。所有其他主账号只能查看满足以下任一要求的索引:
- 针对索引中所有列的 
SELECT、INSERT或UPDATE精细访问权限控制权限中的任何一项在列级被授予给当前数据库角色、当前数据库角色所属的角色或public。 - 针对具有索引的表的 
SELECT、INSERT或UPDATE精细访问权限控制权限中的任何一项被授予给当前数据库角色、当前数据库角色所属的角色或public。 
| 列名 | 类型 | 说明 | 
|---|---|---|
TABLE_CATALOG | 
    STRING | 
    目录的名称。始终为空字符串。 | 
TABLE_SCHEMA | 
    STRING | 
    索引表的架构名称。该名称对于默认架构为空,对于其他架构包含相应值。此列始终包含值。 | 
TABLE_NAME | 
    STRING | 
    表的名称。 | 
INDEX_NAME | 
    STRING | 
    索引的名称。 | 
COLUMN_NAME | 
    STRING | 
    列的名称。 | 
ORDINAL_POSITION | 
    INT64 | 
 索引(或主键)中列的序号位置,从值 1 开始。对于非键列(例如,索引的 STORING 子句中指定的列),此值为 NULL。 | 
 
COLUMN_ORDERING | 
    STRING | 
     列的排序。对于键列,值为 ASC 或 DESC;对于非键列(例如,索引的 STORING 子句中指定的列),值为 NULL。 | 
 
IS_NULLABLE | 
    STRING | 
    指明列是否可以为 Null 的字符串。根据 SQL 标准,该字符串可以是 YES 或 NO,但不能是布尔值。 | 
 
SPANNER_TYPE | 
    STRING | 
    列的数据类型。 | 
COLUMN_OPTIONS
此行过滤表会列出表中的列选项。具有数据库级 IAM 权限的主账号以及被授予 spanner_info_reader 系统角色或该角色成员访问权限的主账号可以查看此视图中的所有行。所有其他主账号只能查看满足以下任一要求的列的选项:
- 针对列的 
SELECT、INSERT或UPDATE精细访问权限控制权限中的任何一项被直接授予给当前数据库角色、当前数据库角色所属的角色或public。 - 针对包含列的表的 
SELECT、INSERT或UPDATE精细访问权限控制权限中的任何一项被授予给当前数据库角色、当前数据库角色所属的角色或public。 
| 列名 | 类型 | 说明 | 
|---|---|---|
TABLE_CATALOG | 
    STRING | 
    目录的名称。始终为空字符串。 | 
TABLE_SCHEMA | 
    STRING | 
    架构的名称。默认架构的名称为空,其他架构(例如,INFORMATION_SCHEMA 本身)的名称为非空。
      此列从来不会为 null。 | 
  
TABLE_NAME | 
    STRING | 
    表的名称。 | 
COLUMN_NAME | 
    STRING | 
    列的名称。 | 
OPTION_NAME | 
    STRING | 
    唯一标识选项的 SQL 标识符。此标识符是 DDL 中 OPTIONS 子句的键。 | 
  
OPTION_TYPE | 
    STRING | 
    表示此选项值的类型的数据类型名称。 | 
OPTION_VALUE | 
    STRING | 
    描述此选项值的 SQL 字面量。此列的值必须作为查询的一部分进行分析。解析该值所得到的表达式必须可强制转换为 OPTION_TYPE。此列从来不会为 null。 | 
  
SEQUENCES
此表会列出序列元数据。在具有精细访问权限的用户进行查询时,SEQUENCES 会根据精细访问权限进行行过滤。
| 列名 | 类型 | 说明 | 
|---|---|---|
CATALOG | 
    STRING | 
    包含序列的目录的名称。 | 
SCHEMA | 
    STRING | 
    包含序列的架构的名称。 | 
NAME | 
    STRING | 
    序列的名称。 | 
DATA_TYPE | 
    STRING | 
    序列值的类型。它使用 INT64 数据类型。 | 
  
SEQUENCE_OPTIONS
此表包含序列的配置选项。在具有精细访问权限的用户进行查询时,SEQUENCE_OPTIONS 会根据精细访问权限进行行过滤。
| 列名 | 类型 | 说明 | 
|---|---|---|
CATALOG | 
    STRING | 
    包含序列的目录的名称。 | 
SCHEMA | 
    STRING | 
    包含序列的架构的名称。 | 
NAME | 
    STRING | 
    序列的名称。 | 
OPTION_NAME | 
    STRING | 
    序列选项的名称。 | 
OPTION_TYPE | 
    STRING | 
    表示此选项值的类型的数据类型名称。 | 
OPTION_VALUE | 
    STRING | 
    序列选项值。解析值所得到的表达式必须允许强制转换为 OPTION_TYPE。 | 
  
SPANNER_STATISTICS
下表列出了可用的查询优化器统计信息软件包。
| 列名 | 类型 | 说明 | 
|---|---|---|
CATALOG_NAME | 
    STRING | 
    目录的名称。始终为空字符串。 | 
SCHEMA_NAME | 
    STRING | 
    架构的名称。默认架构的名称为空,其他架构(例如,INFORMATION_SCHEMA 本身)的名称为非空。
      此列从来不会为 null。 | 
  
PACKAGE_NAME | 
    STRING | 
    统计信息软件包的名称。 | 
ALLOW_GC | 
    BOOL | 
    如果统计信息软件包从垃圾回收中排除,则为 FALSE;否则为 TRUE。
      此属性必须设置为 FALSE,以便在提示中或通过客户端 API 引用统计信息软件包。 | 
  
VIEWS
此行过滤表会列出数据库中的视图。具有数据库级 IAM 权限的主账号以及被授予 spanner_info_reader 系统角色或该角色成员访问权限的主账号可以查看此视图中的所有行。所有其他主账号只能查看其 SELECT 精细访问权限控制权限被授予给当前数据库角色、当前数据库角色所属的角色或是 public 的视图。
| 列名 | 类型 | 说明 | 
|---|---|---|
TABLE_CATALOG | 
    STRING | 
    目录的名称。始终为空字符串。 | 
TABLE_SCHEMA | 
    STRING | 
    架构的名称。如果未命名,则为空字符串。 | 
TABLE_NAME | 
    STRING | 
    视图的名称。 | 
VIEW_DEFINITION | 
    STRING | 
    定义视图的查询的 SQL 文本。 | 
SECURITY_TYPE | 
    STRING | 
    视图的安全类型。INVOKER 或 DEFINER。
    如需了解详情,请参阅视图简介。  | 
  
ROLES
此行过滤表会列出为精细访问权限控制定义的数据库角色,包括系统角色。具有数据库级 IAM 权限的主账号以及被授予 spanner_info_reader 系统角色或该角色成员访问权限的主账号可以查看所有数据库角色。所有其他主账号只能查看已直接或通过继承被授予其访问权限的数据库角色。
| 列名 | 类型 | 说明 | 
|---|---|---|
ROLE_NAME | 
    STRING | 
    数据库角色的名称。 | 
IS_SYSTEM | 
    BOOL | 
    如果数据库角色是系统角色,则为 TRUE;否则为 FALSE。 | 
 
ROLE_GRANTEES
此行过滤表会列出向所有数据库角色明确授予的所有角色成员资格。具有数据库级 IAM 权限的主账号以及被授予 spanner_info_reader 系统角色或该角色成员访问权限的主账号可以查看此视图中的所有行。所有其他主账号只能查看向当前数据库角色或当前数据库角色所属角色授予的角色成员资格。
由于所有数据库角色都是 public 角色的成员,因此结果会省略 public 角色中的隐式成员资格的记录。
| 列名 | 类型 | 说明 | 
|---|---|---|
ROLE_NAME | 
    STRING | 
    在其中授予相应成员资格的数据库角色的名称。 | 
GRANTEE | 
    STRING | 
    被授予相应成员资格的数据库角色的名称。 | 
CHANGE_STREAMS
此行过滤表会列出数据库的所有变更数据流,并注明哪些变更数据流跟踪整个数据库,哪些跟踪特定表或列。具有数据库级 IAM 权限的主账号以及被授予 spanner_info_reader 系统角色或该角色成员访问权限的主账号可以查看此视图中的所有行。所有其他主账号只能查看其 SELECT 精细访问权限控制权限被授予给当前数据库角色、当前数据库角色所属的角色或是 public 的变更数据流。
| 列名 | 类型 | 说明 | 
|---|---|---|
CHANGE_STREAM_CATALOG | 
    STRING | 
    变更数据流目录的名称。始终为空字符串。 | 
CHANGE_STREAM_SCHEMA | 
    STRING | 
    相应变更数据流架构的名称。始终为空字符串。 | 
CHANGE_STREAM_NAME | 
    STRING | 
    变更数据流的名称。 | 
ALL | 
    BOOL | 
    如果相应变更数据流跟踪整个数据库,则为 TRUE。如果相应变更数据流跟踪特定表或列,则为 FALSE。 | 
 
CHANGE_STREAM_TABLES
此行过滤表包含有关表以及监控这些表的变更数据流的信息。每行描述一个表和一个变更数据流。具有数据库级 IAM 权限的主账号以及被授予 spanner_info_reader 系统角色或该角色成员访问权限的主账号可以查看此视图中的所有行。所有其他主账号只能查看满足以下条件的变更数据流的对应行:其 SELECT 权限被授予给当前数据库角色、当前数据库角色所属的角色或是 public。
CHANGE_STREAM_TABLES 中的数据不包括表与跟踪整个数据库的变更数据流之间的隐式关系。
| 列名 | 类型 | 说明 | 
|---|---|---|
CHANGE_STREAM_CATALOG | 
    STRING | 
    变更数据流目录的名称。始终为空字符串。 | 
CHANGE_STREAM_SCHEMA | 
    STRING | 
    变更数据流架构的名称。始终为空字符串。 | 
CHANGE_STREAM_NAME | 
    STRING | 
    相应行引用的变更数据流的名称。 | 
TABLE_CATALOG | 
    STRING | 
    表目录的名称。始终为空字符串。 | 
TABLE_SCHEMA | 
    STRING | 
    表架构的名称。始终为空字符串。 | 
TABLE_NAME | 
    STRING | 
    相应行引用的表的名称。 | 
ALL_COLUMNS | 
    BOOL | 
    如果相应行的变更数据流跟踪此行所引用表的全部内容,则为 TRUE。否则,FALSE。 | 
 
CHANGE_STREAM_COLUMNS
此行过滤表包含有关表列以及监控这些列的变更数据流的信息。每行描述一个变更数据流和一个列。 如果变更数据流跟踪整个表,则该表中的列不会显示在此视图中。
具有数据库级 IAM 权限的主账号以及被授予 spanner_info_reader 系统角色或该角色成员访问权限的主账号可以查看此视图中的所有行。所有其他主账号只能查看满足以下条件的变更数据流的对应行:其 SELECT 权限被授予给当前数据库角色、当前数据库角色所属的角色或是 public。
| 列名 | 类型 | 说明 | 
|---|---|---|
CHANGE_STREAM_CATALOG | 
    STRING | 
    变更数据流目录的名称。始终为空字符串。 | 
CHANGE_STREAM_SCHEMA | 
    STRING | 
    变更数据流架构的名称。始终为空字符串。 | 
CHANGE_STREAM_NAME | 
    STRING | 
    变更数据流的名称。 | 
TABLE_CATALOG | 
    STRING | 
    表目录的名称。始终为空字符串。 | 
TABLE_SCHEMA | 
    STRING | 
    表架构的名称。始终为空字符串。 | 
TABLE_NAME | 
    STRING | 
    相应行引用的表的名称。 | 
COLUMN_NAME | 
    STRING | 
    相应行引用的列的名称。 | 
CHANGE_STREAM_OPTIONS
此行过滤表包含变更数据流的配置选项。具有数据库级 IAM 权限的主账号以及被授予 spanner_info_reader 系统角色或该角色成员访问权限的主账号可以查看此视图中的所有行。所有其他主账号只能查看满足以下条件的变更数据流的选项:其 SELECT 权限被授予给当前数据库角色、当前数据库角色所属的角色或是 public。
| 列名 | 类型 | 说明 | 
|---|---|---|
CHANGE_STREAM_CATALOG | 
    STRING | 
    变更数据流目录的名称。始终为空字符串。 | 
CHANGE_STREAM_SCHEMA | 
    STRING | 
    变更数据流架构的名称。始终为空字符串。 | 
CHANGE_STREAM_NAME | 
    STRING | 
    变更数据流的名称。 | 
OPTION_NAME | 
    STRING | 
    变更数据流选项的名称。 | 
OPTION_TYPE | 
    STRING | 
    变更数据流选项的数据类型。 | 
OPTION_VALUE | 
    STRING | 
    变更数据流选项值。 | 
CHANGE_STREAM_PRIVILEGES
此行过滤表会列出向任何数据库角色(包括 public)授予的针对所有变更数据流的所有精细访问权限控制权限。具有数据库级 IAM 权限的主账号以及被授予 spanner_info_reader 系统角色或该角色成员访问权限的主账号可以查看此视图中的所有行。所有其他主账号只能查看向当前数据库角色、当前数据库角色所属的角色或 public 授予的针对变更数据流的权限。
| 列名 | 类型 | 说明 | 
|---|---|---|
              CHANGE_STREAM_CATALOG
           | 
          
              STRING
           | 
          包含变更数据流的目录的名称(空字符串)。 | 
              CHANGE_STREAM_SCHEMA
           | 
          
              STRING
           | 
          包含变更数据流的架构的名称(空字符串)。 | 
              CHANGE_STREAM_NAME
           | 
          
              STRING
           | 
          变更数据流的名称。 | 
              PRIVILEGE_TYPE
           | 
          
              STRING
           | 
          
              SELECT(变更数据流唯一允许的权限)。
           | 
      
              GRANTEE
           | 
          
              STRING
           | 
          被授予相应权限的数据库角色的名称。 | 
ROUTINES
此行过滤表会列出数据库的所有变更数据流读取函数。具有数据库级 IAM 权限的主账号以及被授予 spanner_info_reader 系统角色或该角色成员访问权限的主账号可以查看此视图中的所有行。所有其他主账号只能查看其 EXECUTE 精细访问权限控制权限被授予给当前数据库角色、当前数据库角色所属的角色或是 public 的变更数据流读取函数。
| 列名 | 类型 | 说明 | 
|---|---|---|
SPECIFIC_CATALOG | 
            STRING | 
            例程目录的名称。始终为空字符串。 | 
SPECIFIC_SCHEMA | 
            STRING | 
            例程架构的名称。始终为空字符串。 | 
SPECIFIC_NAME | 
            STRING | 
            例程的名称。唯一标识例程,即使其名称被重载也是如此。 | 
ROUTINE_CATALOG | 
            STRING | 
            例程目录的名称。始终为空字符串。 | 
ROUTINE_SCHEMA | 
            STRING | 
            例程架构的名称。始终为空字符串。 | 
ROUTINE_NAME | 
            STRING | 
            例程的名称。(可能会在重载时重复。) | 
ROUTINE_TYPE | 
            STRING | 
            例程的类型(FUNCTION 或 PROCEDURE)。始终为 FUNCTION | 
        
DATA_TYPE | 
            STRING | 
            例程返回的数据类型 | 
ROUTINE_BODY | 
            STRING | 
            例程正文的类型(SQL 或 EXTERNAL)。 | 
        
ROUTINE_DEFINITION | 
            STRING | 
            ROUTINE_BODY 的定义。 | 
        
SECURITY_TYPE | 
            STRING | 
            例程的安全类型。始终为 INVOKER。 | 
        
ROUTINE_OPTIONS
此行过滤表对于每个已定义变更数据流读取函数的每个选项都包含对应的一行。
具有数据库级 IAM 权限的主账号以及被授予 spanner_info_reader 系统角色或该角色成员访问权限的主账号可以查看此视图中的所有行。所有其他主账号只能查看满足以下条件的变更数据流读取函数的选项:其 EXECUTE 精细访问权限控制权限被授予给当前数据库角色、当前数据库角色所属的角色或 public。
| 列名 | 类型 | 说明 | 
|---|---|---|
                SPECIFIC_CATALOG
             | 
            
                STRING
             | 
            例程目录的名称。始终为空字符串。 | 
                SPECIFIC_SCHEMA
             | 
            
                STRING
             | 
            例程架构的名称。始终为空字符串。 | 
                SPECIFIC_NAME
             | 
            
                STRING
             | 
            例程的名称。在出现名称重载时唯一标识例程。 | 
                OPTION_NAME
             | 
            
                STRING
             | 
            唯一标识选项的 SQL 标识符。 | 
                OPTION_TYPE
             | 
            
                STRING
             | 
            OPTION_VALUE 的数据类型。
             | 
        
                OPTION_VALUE
             | 
            
                STRING
             | 
            描述此选项值的 SQL 字面量。 此列的值必须可作为查询的一部分进行解析。 | 
PARAMETERS
此行过滤表定义每个变更数据流读取函数的参数。每行描述一个变更数据流读取函数的一个参数。
具有数据库级 IAM 权限的主账号以及被授予 spanner_info_reader 系统角色或该角色成员访问权限的主账号可以查看此视图中的所有行。所有其他主账号只能查看满足以下条件的变更数据流读取函数的参数:其 EXECUTE 精细访问权限控制权限被授予给当前数据库角色、当前数据库角色所属的角色或 public。
| 列名 | 类型 | 说明 | 
|---|---|---|
SPECIFIC_CATALOG | 
            STRING | 
            例程目录的名称。始终为空字符串。 | 
SPECIFIC_SCHEMA | 
            STRING | 
            例程架构的名称。始终为空字符串。 | 
SPECIFIC_NAME | 
            STRING | 
            例程的名称。在出现名称重载时唯一标识例程。 | 
ORDINAL_POSITION | 
            INT64 | 
            例程中参数的序号位置,从值 1 开始。 | 
PARAMETER_NAME | 
            STRING | 
            参数的名称。 | 
DATA_TYPE | 
            STRING | 
            参数的数据类型。 | 
PARAMETER_DEFAULT | 
            STRING | 
            参数的默认值,或对于没有默认值的参数为 NULL。 | 
        
ROUTINE_PRIVILEGES
此行过滤表会列出向任何数据库角色(包括 public)授予的针对所有变更数据流读取函数的所有精细访问权限控制权限。具有数据库级 IAM 权限的主账号以及被授予 spanner_info_reader 系统角色或该角色成员访问权限的主账号可以查看此视图中的所有行。所有其他主账号只能查看向当前数据库角色、当前数据库角色所属的角色或 public 授予的针对变更数据流读取函数的权限。
| 列名 | 类型 | 说明 | 
|---|---|---|
SPECIFIC_CATALOG | 
            STRING | 
            例程目录的名称。始终为空字符串。 | 
SPECIFIC_SCHEMA | 
            STRING | 
            例程架构的名称。始终为空字符串。 | 
SPECIFIC_NAME | 
            STRING | 
            例程的名称。在出现名称重载时唯一标识例程。 | 
PRIVILEGE_TYPE | 
            STRING | 
            
                始终为 EXECUTE。
             | 
        
GRANTEE | 
            STRING | 
            被授予相应权限的数据库角色的名称。 | 
ROLE_TABLE_GRANTS
此行过滤表会列出向任何数据库角色(包括 public)授予的针对所有表和视图的所有精细访问权限控制权限。具有数据库级 IAM 权限的主账号以及被授予 spanner_info_reader 系统角色或该角色成员访问权限的主账号可以查看此视图中的所有行。所有其他主账号只能查看向当前数据库角色和当前数据库角色所属的角色(不包括 public)授予的针对表和视图的权限。
| 列名 | 类型 | 说明 | 
|---|---|---|
GRANTOR | 
            STRING | 
            未使用。 始终为 NULL。 | 
        
GRANTEE | 
            STRING | 
            被授予相应权限的数据库角色的名称。 | 
TABLE_CATALOG | 
            STRING | 
            未使用。 始终为空字符串。 | 
TABLE_SCHEMA | 
            STRING | 
            未使用。 始终为空字符串。 | 
TABLE_NAME | 
            STRING | 
            表或视图的名称。 | 
PRIVILEGE_TYPE | 
            STRING | 
            权限的类型(SELECT、INSERT、UPDATE 或 DELETE)。 | 
        
IS_GRANTABLE | 
            STRING | 
            未使用。 始终为 NO。 | 
        
ROLE_COLUMN_GRANTS
此行过滤表会列出向任何数据库角色(包括 public)授予的针对所有列的所有精细访问权限控制权限。具有数据库级 IAM 权限的主账号以及被授予 spanner_info_reader 系统角色或该角色成员访问权限的主账号可以查看此视图中的所有行。所有其他主账号只能查看向当前数据库角色和当前数据库角色所属的角色(不包括 public)授予的针对列的权限。
此视图包含相应列从该列所属的表或视图继承的 SELECT、INSERT 和 UPDATE 权限。
| 列名 | 类型 | 说明 | 
|---|---|---|
GRANTOR | 
            STRING | 
            未使用。 始终为 NULL。 | 
        
GRANTEE | 
            STRING | 
            被授予相应权限的数据库角色的名称。 | 
TABLE_CATALOG | 
            STRING | 
            未使用。 始终为空字符串。 | 
TABLE_SCHEMA | 
            STRING | 
            未使用。 始终为空字符串。 | 
TABLE_NAME | 
            STRING | 
            包含列的表或视图的名称。 | 
COLUMN_NAME | 
            STRING | 
            针对其授予权限的列的名称。 | 
PRIVILEGE_TYPE | 
            STRING | 
            权限的类型(SELECT、INSERT 或 UPDATE)。 | 
        
IS_GRANTABLE | 
            STRING | 
            未使用。 始终为 NO。 | 
        
ROLE_CHANGE_STREAM_GRANTS
此行过滤表会列出向任何数据库角色(包括 public)授予的针对所有变更数据流的 SELECT 权限。具有数据库级 IAM 权限的主账号以及被授予 spanner_info_reader 系统角色或该角色成员访问权限的主账号可以查看此视图中的所有行。所有其他主账号只能查看向当前数据库角色和当前数据库角色所属的角色(不包括 public)授予的针对变更数据流的权限。
| 列名 | 类型 | 说明 | 
|---|---|---|
CHANGE_STREAM_CATALOG | 
            STRING | 
            未使用。 始终为空字符串。 | 
CHANGE_STREAM_SCHEMA | 
            STRING | 
            包含变更数据流的架构的名称。 | 
CHANGE_STREAM_NAME | 
            STRING | 
            变更数据流的名称。 | 
PRIVILEGE_TYPE | 
            STRING | 
            权限的类型(仅限 SELECT)。 | 
        
GRANTEE | 
            STRING | 
            被授予相应权限的数据库角色的名称。 | 
ROLE_MODEL_GRANTS
此行过滤表会列出向任何数据库角色(包括 public)授予的针对所有模型的所有精细访问权限控制权限。具有数据库级 IAM 权限的主账号以及被授予 spanner_info_reader 系统角色或该角色成员访问权限的主账号可以查看此视图中的所有行。所有其他主账号只能查看向当前数据库角色和当前数据库角色所属的角色(不包括 public)授予的针对表和视图的权限。
| 列名 | 类型 | 说明 | 
|---|---|---|
GRANTOR | 
            STRING | 
            未使用。 始终为 NULL。 | 
        
GRANTEE | 
            STRING | 
            被授予相应权限的数据库角色的名称。 | 
MODEL_CATALOG | 
            STRING | 
            未使用。 始终为空字符串。 | 
MODEL_SCHEMA | 
            STRING | 
            未使用。 始终为空字符串。 | 
MODEL_NAME | 
            STRING | 
            模型的名称。 | 
PRIVILEGE_TYPE | 
            STRING | 
            权限的类型 (EXECUTE)。 | 
        
IS_GRANTABLE | 
            STRING | 
            未使用。 始终为 NO。 | 
        
ROLE_ROUTINE_GRANTS
此行过滤表会列出向任何数据库角色(包括 public)授予的针对所有变更数据流读取函数的 EXECUTE 权限。具有 IAM 数据库级权限的主账号以及被授予 spanner_info_reader 系统角色或该角色成员访问权限的主账号可以查看此视图中的所有行。所有其他主账号只能查看向当前数据库角色和当前数据库角色所属的角色(不包括 public)授予的针对变更数据流读取函数的权限。
| 列名 | 类型 | 说明 | 
|---|---|---|
                GRANTOR
             | 
            
                STRING
             | 
            未使用。 始终为 NULL。 | 
        
                GRANTEE
             | 
            
                STRING
             | 
            被授予权限的角色的名称。 | 
                SPECIFIC_CATALOG
             | 
            
                STRING
             | 
            例程目录的名称。 | 
                SPECIFIC_SCHEMA
             | 
            
                STRING
             | 
            例程架构的名称。 | 
                SPECIFIC_NAME
             | 
            
                STRING
             | 
            例程的名称。在出现名称重载时唯一标识例程。 | 
                PRIVILEGE_TYPE
             | 
            
                STRING
             | 
            授予的权限类型。始终为 EXECUTE。 | 
        
                IS_GRANTABLE
             | 
            
                STRING
             | 
            未使用。 始终为 NO。 | 
        
MODELS
此表会列出数据库的所有模型。
| 列名 | 类型 | 说明 | 
|---|---|---|
MODEL_CATALOG | 
    STRING | 
    目录的名称。始终为空字符串。 | 
MODEL_SCHEMA | 
    STRING | 
    相应模型架构的名称。始终为空字符串。 | 
MODEL_NAME | 
    STRING | 
    模型的名称。 | 
IS_REMOTE | 
    BOOL | 
    如果这是远程模型,则为 TRUE。如果这是托管式模型,则为 FALSE。 | 
 
MODEL_OPTIONS
此表包含模型的配置选项。
| 列名 | 类型 | 说明 | 
|---|---|---|
MODEL_CATALOG | 
    STRING | 
    目录的名称。始终为空字符串。 | 
MODEL_SCHEMA | 
    STRING | 
    相应模型架构的名称。始终为空字符串。 | 
MODEL_NAME | 
    STRING | 
    模型的名称。 | 
OPTION_NAME | 
    STRING | 
    模型选项的名称。 | 
OPTION_TYPE | 
    STRING | 
    模型选项的数据类型。 | 
OPTION_VALUE | 
    STRING | 
    模型选项值。 | 
MODEL_COLUMNS
此表会列出模型中的列。
| 列名 | 类型 | 说明 | 
|---|---|---|
MODEL_CATALOG | 
    STRING | 
    目录的名称。始终为空字符串。 | 
MODEL_SCHEMA | 
    STRING | 
    相应模型架构的名称。始终为空字符串。 | 
MODEL_NAME | 
    STRING | 
    模型的名称。 | 
COLUMN_KIND | 
    STRING | 
    模型列种类。"INPUT" 或 "OUTPUT" 中的一个。 | 
 
COLUMN_NAME | 
    STRING | 
    列的名称。 | 
DATA_TYPE | 
    STRING | 
    列的标准 SQL 数据类型。 | 
ORDINAL_POSITION | 
    INT64 | 
    列的序号位置,从值 1 开始,用于保留声明的列的顺序。 | 
IS_EXPLICIT | 
    BOOL | 
    如果列是在 DDL 中明确指定的,则为 TRUE;如果列是从端点发现的,则为 FALSE。 | 
 
MODEL_COLUMN_OPTIONS
此表包含模型列的配置选项。
| 列名 | 类型 | 说明 | 
|---|---|---|
MODEL_CATALOG | 
    STRING | 
    目录的名称。始终为空字符串。 | 
MODEL_SCHEMA | 
    STRING | 
    相应模型架构的名称。始终为空字符串。 | 
MODEL_NAME | 
    STRING | 
    模型的名称。 | 
COLUMN_KIND | 
    STRING | 
    模型列种类。"INPUT" 或 "OUTPUT" 中的一个。 | 
 
COLUMN_NAME | 
    STRING | 
    列的名称。 | 
OPTION_NAME | 
    STRING | 
    模型列选项的名称。 | 
OPTION_TYPE | 
    STRING | 
    模型列选项的数据类型。 | 
OPTION_VALUE | 
    STRING | 
    模型列选项值。 | 
MODEL_PRIVILEGES
此行过滤表会列出在模型级向数据库角色(包括 public)授予的所有权限。具有数据库级 IAM 权限的主账号以及被授予 spanner_info_reader 系统角色或该角色成员访问权限的主账号可以查看此视图中的所有行。所有其他主账号只能查看满足以下条件的模型的权限:其 EXECUTE 精细访问权限控制权限被授予给当前数据库角色、当前数据库角色所属的角色或 public。
| 列名 | 类型 | 说明 | 
|---|---|---|
MODEL_CATALOG | 
    STRING | 
    未使用。 始终为空字符串。 | 
MODEL_SCHEMA | 
    STRING | 
    未使用。 始终为空字符串。 | 
MODEL_NAME | 
    STRING | 
    针对其授予精细访问权限控制权限的模型的名称。 | 
PRIVILEGE_TYPE | 
    STRING | 
    EXECUTE> | 
 
GRANTEE | 
    STRING | 
    被授予相应权限的数据库角色的名称。 | 
PROPERTY_GRAPHS
此行过滤表会列出数据库中的属性图表。具有数据库级 IAM 权限的主账号以及被授予 spanner_info_reader 系统角色或该角色成员访问权限的主账号可以查看此视图中的所有行。其他所有主账号只有在满足查看用于定义属性图表的所有表的要求时,才能查看这些图表。
| 列名 | 类型 | 说明 | 
|---|---|---|
PROPERTY_GRAPH_CATALOG | 
    STRING | 
    目录的名称。始终为空字符串。 | 
PROPERTY_GRAPH_SCHEMA | 
    STRING | 
    架构的名称。如果未命名,则为空字符串。 | 
PROPERTY_GRAPH_NAME | 
    STRING | 
    属性图表的名称。 | 
PROPERTY_GRAPH_METADATA_JSON | 
    JSON | 
    JSON 格式的属性图表定义。 | 
PROPERTY_GRAPH_METADATA_JSON 列包含一个 PropertyGraph JSON 对象,定义如下:
| JSON 对象名称 | 字段名称 | JSON 类型 | 说明 | 
|---|---|---|---|
PropertyGraph | 
    catalog | 
    string | 
    目录的名称。始终为空字符串。 | 
schema | 
    string | 
    架构的名称。如果未命名,则为空字符串。 | |
name | 
    string | 
    属性图表的名称。 | |
nodeTables | 
    array<object> | 
    节点的 GraphElementTable 对象列表。 | 
 |
edgeTables | 
    array<object> | 
    边缘的 GraphElementTable 对象列表。 | 
 |
labels | 
    array<object> | 
    GraphElementLabel 对象的列表。 | 
 |
propertyDeclarations | 
    array<object> | 
    GraphPropertyDeclaration 对象的列表。 | 
 |
GraphElementTable | 
    name | 
    string | 
    图表元素表的名称。 | 
kind | 
    string | 
    NODE 或 EDGE。 | 
 |
baseCatalogName | 
    string | 
    包含基表的目录的名称。 | |
baseSchemaName | 
    string | 
    包含基表的架构的名称。 | |
baseTableName | 
    string | 
    从中创建元素的输入表的名称。 | |
keyColumns | 
    array<string> | 
    构成元素键的列名称。 | |
labelNames | 
    array<string> | 
    附加到相应元素表的标签名称。 | |
propertyDefinitions | 
    array<object> | 
    GraphPropertyDefinition 对象的列表。 | 
 |
dynamicLabelExpr | 
   string | 
   包含 DYNAMIC LABEL 定义的列的名称。 | 
 |
dynamicPropertyExpr | 
   string | 
   包含 DYNAMIC PROPERTIES 定义的列的名称。 | 
 |
sourceNodeTable | 
    object | 
    GraphNodeTableReference 对象。 仅当 kind 为 EDGE 时才存在。 | 
 |
destinationNodeTable | 
    object | 
    GraphNodeTableReference 对象。 仅当 kind 为 EDGE 时才存在。 | 
 |
GraphNodeTableReference | 
    nodeTableName | 
    string | 
    图表元素表的名称。 | 
edgeTableColumns | 
    array<string> | 
    与边缘的来源键和目标键相关联的列的名称。 | |
nodeTableColumns | 
    array<string> | 
    与节点的来源键和目标键相关联的列的名称。 | |
GraphElementLabel | 
    name | 
    string | 
    标签的名称。 | 
propertyDeclarationNames | 
    array<string> | 
    与相应标签相关联的属性的名称。 | |
GraphPropertyDeclaration | 
    name | 
    string | 
    属性的名称。 | 
type | 
    string | 
    属性的类型。 | |
GraphPropertyDefinition | 
    propertyDeclarationName | 
    string | 
    属性的名称。 | 
valueExpressionSql | 
    string | 
    用于定义属性的表达式。 | 
示例
返回有关用户架构中每个表的信息:
SELECT
  t.table_schema,
  t.table_name,
  t.parent_table_name
FROM
  information_schema.tables AS t
WHERE
  t.table_catalog = ''
  AND
  t.table_schema NOT IN ('information_schema', 'SPANNER_SYS')
  AND t.table_type = 'BASE TABLE'
ORDER BY
  t.table_catalog,
  t.table_schema,
  t.table_name
返回 INFORMATION_SCHEMA 中所有表的名称:
SELECT
  t.table_name
FROM
  information_schema.tables AS t
WHERE
  t.table_schema = "SPANNER_SYS"
返回有关默认架构中用户表 MyTable 中的列的信息:
SELECT
  t.column_name,
  t.spanner_type,
  t.is_nullable
FROM
  information_schema.columns AS t
WHERE
  t.table_catalog = ''
  AND
  t.table_schema = ''
  AND
  t.table_name = 'MyTable'
ORDER BY
  t.table_catalog,
  t.table_schema,
  t.table_name,
  t.ordinal_position
返回有关数据库的默认主要区域的信息。如果未设置默认主要区域,则返回空值:
SELECT
  s.option_name,
  s.option_value
FROM
  information_schema.database_options s
WHERE
  s.option_name = 'default_leader'
返回有关用户架构中每个索引的信息:
SELECT
  t.table_schema,
  t.table_name,
  t.index_name,
  t.parent_table_name
FROM
  information_schema.indexes AS t
WHERE
  t.table_catalog = ''
  AND
  t.table_schema NOT IN ('information_schema', 'SPANNER_SYS')
  AND
  t.index_type != 'PRIMARY_KEY'
ORDER BY
  t.table_catalog,
  t.table_schema,
  t.table_name,
  t.index_name
返回使用默认值以外的选项的所有列:
SELECT
  t.table_schema,
  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_catalog = ''
AND
  t.table_schema NOT IN ('information_schema', 'SPANNER_SYS')
返回当前与优化器相关的数据库选项:
SELECT
  s.option_name,
  s.option_value
FROM
  information_schema.database_options s
WHERE
  s.schema_name=''
  AND s.option_name IN ('optimizer_version',
    'optimizer_statistics_package')
返回所有可用的统计信息包:
SELECT
  *
FROM
  information_schema.spanner_statistics;
返回所有序列:
SELECT
  *
FROM
  information_schema.sequences;
返回名为“MySequence”的序列的所有序列选项
SELECT
  *
FROM
  information_schema.sequence_options WHERE name="MySequence";
返回所有属性图表的名称及其定义:
SELECT
  property_graph_name,
  property_graph_metadata_json
FROM
  information_schema.property_graphs
返回所有属性图表的名称及其标签和属性:
SELECT
  property_graph_name,
  property_graph_metadata_json.labels,
  property_graph_metadata_json.propertyDeclarations
FROM
  information_schema.property_graphs
后续步骤
- 了解可用的内省工具以帮助您调查数据库问题。