信息架构是每个 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 方言数据库的信息架构。
与 information_schema
for PostgreSQL 的区别
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 功能相关的表不可用。
- 您也可以使用 Spanner 提供的部分(非开源 PostgreSQL)表,例如
database_options
、index_columns
、indexes
和spanner_statistics
。
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
系统角色或该角色成员访问权限的主账号可以看到此视图中的所有行。所有其他主帐号只能查看被授予当前数据库角色或当前数据库角色所属的角色的角色成员。
由于所有数据库角色都是 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_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
系统角色或该角色成员访问权限的主账号可以看到此视图中的所有行。所有其他主帐号只能看到符合以下条件的列:对它们拥有任何精细的访问权限控制权限(或其所属表上授予的 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 。 |
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
系统角色或该角色成员访问权限的主账号可以看到此视图中的所有行。所有其他主帐号只能看到以下变更数据流读取函数:当前数据库角色、当前数据库角色所属的角色或 public
被授予了 EXECUTE
精细访问权限控制权限。
列名 | 类型 | 说明 |
---|---|---|
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”或“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_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;
后续步骤
- 了解可用的内省工具可帮助您调查数据库问题。