信息架构是每个 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 接口获得,例如:
executeQuery
APIgcloud 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 bundle 语句,此列会提供有关架构中所用 proto bundle 的信息。如果数据库中不存在任何 proto bundle,此列为 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_partition
default_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
。 - 系统会向当前数据库角色、当前数据库角色所属的角色或
public
授予针对任何表列的SELECT
、INSERT
或UPDATE
权限。
列名 | 类型 | 说明 |
---|---|---|
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 。如需了解详情,请参阅表语句。 |
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
。- 向当前数据库角色、当前数据库角色所属的角色或
public
授予包含相应列的表的任何SELECT
、INSERT
或UPDATE
精细访问权限控制权限。
列名 | 类型 | 说明 |
---|---|---|
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
。- 包含相应列的表已向当前数据库角色、当前数据库角色所属的角色或
public
授予SELECT
、INSERT
或UPDATE
精细访问权限控制权限。
列名 | 类型 | 说明 |
---|---|---|
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
系统角色或该角色成员访问权限的主账号可以查看此视图中的所有行。所有其他主账号只能查看以下表的权限:当前数据库角色、当前数据库角色所属的角色或 public
被授予了 SELECT
、INSERT
、UPDATE
或 DELETE
精细访问权限控制权限的表。
列名 | 类型 | 说明 |
---|---|---|
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
。- 包含相应列的表已向当前数据库角色、当前数据库角色所属的角色或
public
授予SELECT
、INSERT
或UPDATE
精细访问权限控制权限。
列名 | 类型 | 说明 |
---|---|---|
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
系统角色或该角色成员的访问权限的主账号可以查看此视图中的所有行。所有其他正文只能查看满足以下任一要求的索引:
- 系统会向当前数据库角色、当前数据库角色所属的角色或
public
授予索引中所有列的任何SELECT
、INSERT
或UPDATE
精细访问权限控制权限。 - 对具有索引的表授予了任何
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
系统角色或该角色成员的访问权限的主账号可以查看此视图中的所有行。所有其他正文只能查看满足以下任一要求的索引:
- 系统会向当前数据库角色、当前数据库角色所属的角色或
public
授予索引中所有列的任何SELECT
、INSERT
或UPDATE
精细访问权限控制权限。 - 如果表具有索引,则向当前数据库角色、当前数据库角色所属的角色或
public
授予SELECT
、INSERT
或UPDATE
精细访问权限控制权限。
列名 | 类型 | 说明 |
---|---|---|
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
。- 包含相应列的表已向当前数据库角色、当前数据库角色所属的角色或
public
授予SELECT
、INSERT
或UPDATE
精细访问权限控制权限。
列名 | 类型 | 说明 |
---|---|---|
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
系统角色或该角色成员的访问权限的主账号可以查看此视图中的所有行。所有其他主账号只能查看当前数据库角色、当前数据库角色所属的角色或 public
获授 SELECT
精细访问权限控制权限的视图。
列名 | 类型 | 说明 |
---|---|---|
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
系统角色或该角色成员访问权限的主账号可以查看此视图中的所有行。所有其他主账号只能查看当前数据库角色、当前数据库角色所属的角色或 public
获授 SELECT
精细访问权限控制权限的变更数据流。
列名 | 类型 | 说明 |
---|---|---|
CHANGE_STREAM_CATALOG |
STRING |
变更数据流的目录名称。始终为空字符串。 |
CHANGE_STREAM_SCHEMA |
STRING |
相应变更数据流的架构名称。始终为空字符串。 |
CHANGE_STREAM_NAME |
STRING |
变更数据流的名称。 |
ALL |
BOOL |
如果相应变更数据流跟踪整个数据库,则为 TRUE 。
FALSE (如果此变更数据流跟踪特定表或列)。 |
CHANGE_STREAM_TABLES
此行过滤后的表包含有关表和监控这些表的变更数据流的信息。每一行描述一个表和一个更改流。具有数据库级 IAM 权限的主账号以及已被授予 spanner_info_reader
系统角色或该角色成员访问权限的主账号可以查看此视图中的所有行。所有其他主账号只能看到当前数据库角色、当前数据库角色所属的角色或 public
获授 SELECT
权限的变更数据流的行。
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
权限的变更数据流、当前数据库角色所属的角色被授予 SELECT
权限的变更数据流,或 public
被授予 SELECT
权限的变更数据流。
列名 | 类型 | 说明 |
---|---|---|
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
系统角色或该角色成员的主账号可以查看此视图中的所有行。所有其他委托人只能看到当前数据库角色、当前数据库角色所属的角色或 public
拥有 SELECT
权限的变更数据流的选项。
列名 | 类型 | 说明 |
---|---|---|
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
系统角色或该角色成员的主账号可以查看此视图中的所有行。所有其他主账号只能看到以下变更数据流读取函数:当前数据库角色、当前数据库角色所属的角色或 public
拥有 EXECUTE
精细访问权限控制权限的变更数据流读取函数。
列名 | 类型 | 说明 |
---|---|---|
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
系统角色或该角色成员的主账号可以查看此视图中的所有行。所有其他主账号只能看到以下变更数据流读取函数的选项:当前数据库角色、当前数据库角色所属的角色或 public
拥有 EXECUTE
精细访问权限控制权限的变更数据流读取函数。
列名 | 类型 | 说明 |
---|---|---|
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
系统角色或该角色成员的主账号可以查看此视图中的所有行。所有其他主账号只能看到以下变更数据流读取函数的参数:当前数据库角色、当前数据库角色所属的角色或 public
拥有 EXECUTE
精细访问权限控制权限的变更数据流读取函数。
列名 | 类型 | 说明 |
---|---|---|
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
后续步骤
- 了解可用的内省工具以帮助您调查数据库问题。