信息架构是每个 PostgreSQL 数据库通用的内置架构。您可以对 information_schema
中的表运行 SQL 查询来提取数据库的架构元数据。
例如,以下查询可提取数据库中所有用户定义的表的名称:
SELECT
table_name
FROM
information_schema.tables
WHERE
table_schema = 'public'
使用情况
information_schema
表只能通过 SQL 接口使用,例如:executeQuery
APIgcloud 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 方言数据库时,为 information_schema
的开源 PostgreSQL 版本编写的查询无需修改即可运行。
PostgreSQL 方言数据库的 information_schema
的其他显著差异包括:
- 开源 PostgreSQL 的部分表列可用,但不会填充到 PostgreSQL 方言数据库中。
- PostgreSQL 方言数据库使用
public
作为默认架构名称。 - 自动生成的限制条件名称使用与开源 PostgreSQL 数据库不同的格式。
- PostgreSQL 方言数据库中不支持的开源 PostgreSQL 功能的相关表不可用。
- 某些表(例如
database_options
、index_columns
、indexes
和spanner_statistics
)适用于 Spanner,但不适用于开源 PostgreSQL。
information_schema
表和视图中的行过滤
具有数据库级 IAM 权限的主帐号和已被授予 spanner_info_reader
系统角色(或该角色的成员)访问权限的主帐号可以查看所有 information_schema
表和视图中的所有行。对于其他主帐号,Spanner 会根据当前的数据库角色过滤行。以下部分中的表和视图说明介绍了 Spanner 如何为每个表和视图过滤行。
information_schema
中用于 PostgreSQL 方言数据库的表
information_schema
中的表和视图与开源 PostgreSQL 的 information_schema
中的表和视图兼容。
以下部分介绍了 PostgreSQL 方言数据库的 information_schema
中的表和视图。
applicable_roles
此按行过滤的视图列出了明确授予所有数据库角色的所有角色成员资格。具有数据库级 IAM 权限的主帐号以及已被授予 spanner_info_reader
系统角色或该角色中成员访问权限的主帐号,可以查看此视图中的所有行。所有其他主帐号只能查看已授予当前数据库角色或当前数据库角色所属的角色的角色成员资格。
由于所有数据库角色都是公共角色的成员,因此结果省略了公共角色中的隐式成员资格的记录。
列名称 | 类型 | 说明 |
---|---|---|
grantee |
character varying |
授予成员资格的数据库角色的名称。 |
role_name |
character varying |
授予此成员资格的父数据库角色的名称。 |
is_grantable |
character varying |
未使用。始终为 NO 。 |
change_stream_columns
此按行过滤的视图包含表列以及查看这些列的变更数据流的相关信息。每一行分别对应一个变更数据流和一列。 如果变更数据流跟踪整个表,则该表中的列不会显示在此视图中。
具有数据库级 IAM 权限的主帐号以及已被授予 spanner_info_reader
系统角色或该角色中成员访问权限的主帐号,可以查看此视图中的所有行。所有其他主帐号只能查看符合以下条件的变更数据流:当前数据库角色、当前数据库角色是其成员的角色或 public
被授予 SELECT
权限。
列名 | 类型 | 说明 |
---|---|---|
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
系统角色或该角色中成员访问权限的主帐号,可以查看此视图中的所有行。所有其他主帐号只能查看符合以下条件的变更数据流:当前数据库角色、当前数据库角色所属的角色或 public
具有 SELECT
权限。
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_constraints
视图中,由 CHECK
或 NOT NULL
关键字定义的每个检查限制条件都对应一行。
列名 | 类型 | 说明 |
---|---|---|
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
系统角色或该角色中成员访问权限的主帐号,可以查看此视图中的所有行。所有其他主帐号只能查看对当前的数据库角色、当前数据库角色所属的角色或 public
具有任何精细访问权限控制权限(或对其包含的表授予的 SELECT
、INSERT
或 UPDATE
权限)的列。
列名 | 类型 | 说明 |
---|---|---|
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
系统角色或该角色中成员访问权限的主帐号,可以查看此视图中的所有行。所有其他主帐号只能查看变更数据流读取函数的参数,这些函数被授予以下角色:当前数据库角色、当前数据库角色所属的角色或 public
具有 EXECUTE
精细访问权限控制权限。
列名 | 类型 | 说明 |
---|---|---|
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 。 |
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
系统角色或该角色中成员访问权限的主帐号,可以查看此视图中的所有行。所有其他主帐号只能看到对当前数据库角色、当前数据库角色所属的角色或 public
授予 EXECUTE
精细访问权限控制权限的各种变更数据流读取函数选项。
列名 | 类型 | 说明 |
---|---|---|
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 /td>
| 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
系统角色或该角色中成员的访问权限的主帐号可以查看所有表和视图。所有其他主帐号只能查看符合以下任一要求的表:
-
您可以在表上向当前数据库角色、当前数据库角色所属的角色或
public
授予SELECT
、INSERT
、UPDATE
或DELETE
精细访问权限控制权限。 - 针对任何表列授予对当前数据库角色、当前数据库角色是成员的角色或
public
的SELECT
、INSERT
或UPDATE
权限。
列名 | 类型 | 说明 |
---|---|---|
table_catalog |
character varying |
数据库名称。 |
table_schema |
character varying |
包含表或视图的架构的名称。 |
table_name |
character varying |
表或视图的名称。 |
table_type |
character varying |
表类型。可能的值包括“BASE TABLE”和“VIEW”。 |
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 的表达式文本。 |
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_catalog,
t.table_name,
t.parent_table_name
FROM
information_schema.tables AS t
WHERE
t.table_schema = 'public'
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
返回有关当前数据库中默认架构中每个索引的信息:
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;
后续步骤
- 了解可用的内省工具以帮助您调查数据库问题。