GoogleSQL 方言資料庫的資訊結構定義

資訊結構定義是每個 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 API
  • gcloud spanner databases execute-sql 指令
  • Google Cloud 控制台中的資料庫「Spanner Studio」頁面

其他單一讀取方法不支援 INFORMATION_SCHEMA。

其他 INFORMATION_SCHEMA 使用注意事項:

在 information_schema 資料表中篩選資料列

具有資料庫層級 IAM 權限的主體,以及獲准存取 spanner_info_reader system role (或該角色成員) 的主體,可以查看所有 information_schema 資料表中的所有資料列。如果是其他主體,系統會根據目前的資料庫角色,篩選部分資料表的資料列。以下各節中的表格和檢視畫面說明,會指出每個表格和檢視畫面套用資料列篩選條件的方式。

INFORMATION_SCHEMA 中的資料表

以下各節說明 GoogleSQL 方言資料庫的 INFORMATION_SCHEMA 中的資料表。

SCHEMATA

INFORMATION_SCHEMA.SCHEMATA 資料表會列出資料庫中的結構定義,包括資訊結構定義和具名結構定義,其中包含您定義的資料表。

資料欄名稱 類型 說明
CATALOG_NAME STRING 目錄的名稱。這個資料欄的存在是為了與 SQL 標準資訊結構定義資料表相容。這個資料欄一律為空白字串。
SCHEMA_NAME STRING 結構定義的名稱。如果是已命名的結構定義,這個值就是名稱;如果是預設結構定義,這個值就是 ``。
PROTO_BUNDLE STRING 如果資料庫包含 Proto 組合陳述式,這個資料欄會提供結構定義中使用的 Proto 組合相關資訊。如果資料庫中沒有任何原型套件,這個欄則為 NULL。

DATABASE_OPTIONS

下表列出資料庫中設定的選項。

資料欄名稱 類型 說明
CATALOG_NAME STRING 目錄的名稱。一律為空字串。
SCHEMA_NAME STRING 結構定義的名稱。如果未命名,則為空白字串。
OPTION_NAME STRING 資料庫選項名稱。
OPTION_TYPE STRING 資料庫選項的資料類型。
OPTION_VALUE STRING 資料庫選項值。

PLACEMENTS

這個表格會列出資料庫中的刊登位置。

資料欄名稱 類型 說明
PLACEMENT_NAME STRING 刊登位置名稱。
IS_DEFAULT BOOL 布林值,指出刊登位置是否為預設刊登位置。

PLACEMENT_OPTIONS

這個表格會列出 CREATE PLACEMENT 陳述式 OPTIONS 子句中,針對每個刊登位置設定的選項。

OPTION_NAME 的有效值包括:

  • instance_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 地區群組選項的名稱。有效選項如下:
  • STORAGE:定義地域群組的儲存空間類型。
  • SSD_TO_HDD_SPILL_TIMESPAN:定義資料在移至 HDD 儲存空間前,於 SSD 儲存空間中儲存的時間長度。
OPTION_VALUE STRING 區域群組選項的值。如果是 STORAGE,則為 ssd 或 hdd。SSD_TO_HDD_SPILL_TIMESPAN:這是資料必須儲存在 SSD 的時間長度,之後才會移至 HDD 儲存空間。舉例來說,10d 是 10 天。最短時間為一小時。

TABLES

這個經過列篩選的表格會列出資料庫中的資料表和檢視表。具有資料庫層級 IAM 權限的主體,以及獲准存取 spanner_info_reader 系統角色或該角色成員的主體,都能查看這個檢視表中的所有資料列。其他主體只能查看符合下列任一條件的資料表:

  • 系統會將 SELECT、INSERT、UPDATE 或 DELETE 精細存取權控管權限授予目前資料庫角色的資料表、目前資料庫角色所屬的角色,或是 public。
  • 系統會將 SELECT、INSERT 或 UPDATE 權限授予目前資料庫角色的任何資料表欄、目前資料庫角色所屬的角色,或是 public。
資料欄名稱 類型 說明
TABLE_CATALOG STRING 未使用。一律為空字串。
TABLE_SCHEMA STRING 資料表的結構定義名稱。如果是預設結構定義,這個名稱是空白的;如果是其他結構定義,這個值則包含值。這個資料欄一律包含值。
TABLE_NAME STRING 資料表、檢視區塊或同義字的名稱。
TABLE_TYPE STRING 資料表類型。如果是資料表,值為 BASE TABLE;如果是檢視區塊,值為 VIEW;如果是同義字,值為 SYNONYM。
PARENT_TABLE_NAME STRING 如果資料表是交錯資料表,這個資料欄為父項資料表的名稱,否則為 NULL。
ON_DELETE_ACTION STRING 如果是交錯資料表,這個資料欄會設為 CASCADE 或 NO ACTION。如果不是,則會設為 NULL。詳情請參閱 TABLE 陳述式。
SPANNER_STATE STRING 如果涉及大量作業,表格在建立期間可能會經歷多種狀態。舉例來說,如果建立資料表時使用外來鍵,則需要回填索引。可能的狀態包括:
  • ADDING_FOREIGN_KEY:新增資料表的外鍵。
  • WAITING_FOR_COMMIT:完成結構定義變更。
  • COMMITTED:已提交建立資料表的結構定義變更。變更提交前,您無法寫入資料表。
INTERLEAVE_TYPE STRING 表示這個資料表與交錯資料表之間是否有父項/子項關係的運算式文字。可能的值包括:
  • IN:資料表沒有父項/子項關係。無論父項資料表列是否存在,這個資料表列都可以存在。
  • IN PARENT:資料表具有父項/子項關係。 這個資料表中的資料列必須有父項資料表資料列。
  • 空字串表示這個資料表沒有交錯關係。
ROW_DELETION_POLICY_EXPRESSION STRING 定義資料表資料列刪除政策的運算式文字。例如 OLDER_THAN(CreatedAt, INTERVAL 1 DAY) 或 OLDER_THAN(ExpiredDate, INTERVAL 0 DAY)。

COLUMNS

這個經過資料列篩選的資料表會列出資料表中的資料欄。具有資料庫層級 IAM 權限的主體,以及獲准存取 spanner_info_reader 系統角色或該角色成員的主體,都能查看這個檢視表中的所有資料列。其他主體只能查看符合下列任一條件的資料欄:

  • 系統會直接在資料欄上,將 SELECT、INSERT 或 UPDATE 其中一項細部存取權授予目前的資料庫角色、目前資料庫角色所屬的角色,或是 public。
  • 在包含資料欄的資料表上,將任何 SELECT、INSERT 或 UPDATE 細部存取控制權限授予目前的資料庫角色、目前資料庫角色所屬的角色,或 public。
資料欄名稱 類型 說明
TABLE_CATALOG STRING 未使用。一律為空字串。
TABLE_SCHEMA STRING 資料欄資料表的結構定義名稱。如果是預設結構定義,這個名稱是空白的;如果是其他結構定義,這個值則包含值。這個資料欄一律包含值。
TABLE_NAME STRING 資料表的名稱。
COLUMN_NAME STRING 資料欄的名稱。
ORDINAL_POSITION INT64 資料欄在資料表中的序數位置,值從 1 開始。
COLUMN_DEFAULT STRING

資料欄預設值的 SQL 運算式字串表示法。如果資料欄沒有預設值,則為 NULL。

注意:2022 年 3 月前,COLUMN_DEFAULT 使用的類型為 BYTES。

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 資料欄的目前狀態。新增至現有資料表的儲存產生資料欄,可能需要經過多個使用者可觀察的狀態,才能完全可用。可能的值包括:
  • WRITE_ONLY:系統正在回填資料欄。不允許讀取。
  • COMMITTED:資料欄可正常使用。
IS_IDENTITY STRING 如果產生的資料欄是身分識別資料欄,則字串會設為 YES,否則為 NO。
IDENTITY_GENERATION STRING 指定資料欄是否只允許系統產生值,不允許使用者插入自訂值的字串。
  • BY DEFAULT:預設值。BY DEFAULT 指定如果未提供使用者插入的值,則欄會使用產生值。
  • ALWAYS:這個資料欄只允許系統產生的值,不允許使用者插入自訂值。
IDENTITY_KIND STRING 一律 BIT_REVERSED_POSITITVE_SEQUENCE。僅支援位元反轉的正序。
IDENTITY_START_WITH_COUNTER STRING 轉換前內部計數器的起始值。For example, the start value before bit-reversing.
IDENTITY_SKIP_RANGE_MIN STRING 轉換後略過範圍的最小值。
IDENTITY_SKIP_RANGE_MAX STRING 轉換後略過範圍的最大值。
ON_UPDATE_EXPRESSION STRING STRING,其中包含資料欄 `ON UPDATE` 運算式的 SQL 表示法。如果資料欄沒有 `ON UPDATE` 值,則值為 `NULL`。

COLUMN_PRIVILEGES

這個經過資料列篩選的表格會列出授予任何資料庫角色 (包括 public) 的資料欄層級權限。具有資料庫層級 IAM 權限的主體,以及獲准存取 spanner_info_reader 系統角色或該角色成員的主體,可以查看這個檢視畫面中的所有資料列。其他主體只能查看符合下列任一條件的資料欄權限:

  • 系統會直接在資料欄上,將 SELECT、INSERT 或 UPDATE 其中一項細部存取控制權限授予目前的資料庫角色、目前資料庫角色所屬的角色,或是 public。
  • 在包含資料欄的資料表上,將任何 SELECT、INSERT 或 UPDATE 細部存取權控制權限授予目前的資料庫角色、目前資料庫角色所屬的角色,或 public。
資料欄名稱 類型 說明
TABLE_CATALOG STRING 未使用。一律為空字串。
TABLE_SCHEMA STRING 資料欄資料表的結構定義名稱。如果是預設結構定義,這個名稱是空白的;如果是其他結構定義,這個值則包含值。這個資料欄一律包含值。
TABLE_NAME STRING 包含具備存取權限資料欄的資料表名稱。
COLUMN_NAME STRING 具備存取權限的資料欄名稱。
PRIVILEGE_TYPE STRING SELECT、INSERT、UPDATE
GRANTEE STRING 獲授權限的資料庫角色名稱。

TABLE_PRIVILEGES

這個經過篩選的資料表會列出授予資料庫角色的所有資料表層級權限,包括 public。具有資料庫層級 IAM 權限的主體,以及獲准存取 spanner_info_reader 系統角色或該角色成員的主體,可以查看這個檢視畫面中的所有資料列。如果資料庫角色或其所屬角色,或 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 限制類型。可能的值包括:
  • PRIMARY KEY
  • FOREIGN KEY
  • PLACEMENT KEY
  • CHECK
  • UNIQUE
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 FOREIGN KEY 參照的 PRIMARY KEY 或 UNIQUE 限制目錄名稱。一律為空字串。
UNIQUE_CONSTRAINT_SCHEMA STRING FOREIGN KEY 參照的 PRIMARY KEY 或 UNIQUE 限制的結構定義名稱。如果未命名,則為空白字串。
UNIQUE_CONSTRAINT_NAME STRING FOREIGN KEY 參照的 PRIMARY KEY 或 UNIQUE 限制名稱。
MATCH_OPTION STRING 一律 SIMPLE。
UPDATE_RULE STRING 一律 NO ACTION。
DELETE_RULE STRING CASCADE 或 NO ACTION。
SPANNER_STATE STRING 外鍵的目前狀態。Spanner 會等到外鍵的支援索引建立並回填後,才開始強制執行限制。索引準備就緒後,Spanner 會開始對新交易強制執行限制,同時驗證現有資料。可能的值和這些值代表的狀態如下:
  • BACKFILLING_INDEXES:正在補充索引。
  • VALIDATING_DATA:系統正在驗證現有資料和新寫入的資料。
  • WAITING_FOR_COMMIT:外鍵大量作業已順利完成,或不需要任何作業,但外鍵仍處於待處理狀態。
  • COMMITTED:結構定義變更已提交。

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 值。可能的狀態如下:
  • VALIDATING:Spanner 正在驗證現有資料。
  • COMMITTED:這項限制沒有任何有效的結構定義變更。

KEY_COLUMN_USAGE

這個經過資料列篩選的資料表包含一個資料列,其中列出受 PRIMARY KEY、FOREIGN KEY 或 UNIQUE 限制條件約束的 TABLE_CONSTRAINTS 資料表各個資料欄。具有資料庫層級 IAM 權限的主體,以及獲准存取 spanner_info_reader 系統角色或該角色成員的主體,都能在這個檢視畫面中看到所有資料列。其他主體只能看到符合下列條件的資料欄:

  • 系統會直接在資料欄上,將 SELECT、INSERT 或 UPDATE 其中一項細部存取權授予目前的資料庫角色、目前資料庫角色所屬的角色,或是 public。
  • 在包含資料欄的資料表上,將 SELECT、INSERT 或 UPDATE 其中一項精細存取權控制權限授予目前的資料庫角色、目前資料庫角色所屬的角色,或 public。
資料欄名稱 類型 說明
CONSTRAINT_CATALOG STRING 限制目錄的名稱。一律為空字串。
CONSTRAINT_SCHEMA STRING 限制的結構定義名稱。這個資料欄絕不會是 Null 值。如果未命名,則為空白字串。
CONSTRAINT_NAME STRING 限制的名稱。
TABLE_CATALOG STRING 受限資料欄目錄的名稱。一律為空字串。
TABLE_SCHEMA STRING 受限資料欄所屬資料表的結構定義名稱。如果是預設結構定義,這個名稱是空白的;如果是其他結構定義,這個值則包含值。這個資料欄一律包含值。
TABLE_NAME STRING 受限資料欄的資料表名稱。
COLUMN_NAME STRING 資料欄的名稱。
ORDINAL_POSITION INT64 資料欄在限制條件鍵中的序數位置,值從 1 開始。
POSITION_IN_UNIQUE_CONSTRAINT INT64 如果是 FOREIGN KEY,則為資料欄在唯一限制中的序數位置,值從 1 開始。如果是其他限制類型,這個欄會顯示為空值。

CONSTRAINT_COLUMN_USAGE

這個表格包含限制條件所用每個資料欄的一列。包括 PRIMARY KEY 和 UNIQUE 資料欄,以及 FOREIGN KEY 限制條件的參照資料欄。

資料欄名稱 類型 說明
TABLE_CATALOG STRING 資料欄資料表目錄的名稱。一律為空字串。
TABLE_SCHEMA STRING 資料欄資料表的結構定義名稱。如果是預設結構定義,這個名稱是空白的;如果是其他結構定義,這個值則包含值。這個資料欄一律包含值。
TABLE_NAME STRING 資料欄所屬資料表的名稱。
COLUMN_NAME STRING 限制條件使用的資料欄名稱。
CONSTRAINT_CATALOG STRING 限制目錄的名稱。一律為空字串。
CONSTRAINT_SCHEMA STRING 限制的結構定義名稱。如果未命名,則為空白字串。
CONSTRAINT_NAME STRING 限制的名稱。

TABLE_SYNONYMS

這個表格會列出資料表的同義字資訊。

資料欄名稱 類型 說明
TABLE_CATALOG STRING 未使用。一律為空字串。
TABLE_SCHEMA STRING 資料表的結構定義名稱。如果是預設結構定義,這個名稱是空白的;如果是其他結構定義,這個值則包含值。這個資料欄一律包含值。
TABLE_NAME STRING 資料表的名稱。
SYNONYM_CATALOG STRING 同義字目錄的名稱。
SYNONYM_SCHEMA STRING 同義字的結構定義名稱。
SYNONYM_TABLE_NAME STRING 同義字所屬資料表的名稱。

INDEXES

這個經過資料列篩選的資料表會列出資料庫中的索引。具有資料庫層級 IAM 權限的主體,以及獲准存取 spanner_info_reader 系統角色或該角色成員的主體,都能查看這個檢視表中的所有資料列。其他主體只能看到符合下列任一條件的索引:

  • 系統會將 SELECT、INSERT 或 UPDATE 精細存取權控管權限,授予目前資料庫角色、目前資料庫角色所屬的角色,或 public,但僅限於索引中的所有資料欄。
  • 在具有索引的資料表上,授予目前資料庫角色、目前資料庫角色所屬的角色,或 public 任何 SELECT、INSERT、UPDATE 或 DELETE 細部存取控制權。
資料欄名稱 類型 說明
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 索引的目前狀態。可能的值和這些值代表的狀態如下:
  • PREPARE:為新索引建立空白資料表。
  • WRITE_ONLY:為新索引補充資料。
  • WRITE_ONLY_CLEANUP:清除新索引。
  • WRITE_ONLY_VALIDATE_UNIQUE:檢查新索引中的資料是否不重複。
  • READ_WRITE:一般索引作業。
SPANNER_IS_MANAGED BOOL 如果索引是由 Spanner 管理,則為 TRUE;否則為 FALSE。外鍵的次要支援索引由 Spanner 管理。

INDEX_COLUMNS

這個經過資料列篩選的資料表會列出索引中的資料欄。具有資料庫層級 IAM 權限的主體,以及獲准存取 spanner_info_reader 系統角色或該角色成員的主體,都能查看這個檢視表中的所有資料列。其他主體只能看到符合下列任一條件的索引:

  • 系統會將 SELECT、INSERT 或 UPDATE 其中一項精細存取權控管權限,授予目前資料庫角色、目前資料庫角色所屬的角色,或 public,並套用至索引中的所有資料欄。
  • 在具有索引的資料表上,授予目前資料庫角色、目前資料庫角色所屬角色,或 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。
  • 在包含資料欄的資料表上,將任何 SELECT、INSERT 或 UPDATE 細部存取權控制權限授予目前的資料庫角色、目前資料庫角色所屬的角色,或 public。
資料欄名稱 類型 說明
TABLE_CATALOG STRING 目錄的名稱。一律為空字串。
TABLE_SCHEMA STRING 結構定義的名稱。如果是預設結構定義,這個名稱是空白的;如果是其他結構定義,這個值是非空白 (例如 INFORMATION_SCHEMA 本身)。 這個資料欄絕不會是 Null 值。
TABLE_NAME STRING 資料表的名稱。
COLUMN_NAME STRING 資料欄的名稱。
OPTION_NAME STRING 可唯一識別選項的 SQL 識別碼。這個識別碼是 DDL 中 OPTIONS 子句的鍵。
OPTION_TYPE STRING 這個選項值類型的資料類型名稱。
OPTION_VALUE STRING 說明這個選項值的 SQL 常值。這個資料欄的值必須可做為查詢的一部分進行剖析。剖析值所產生的運算式必須可轉型為 OPTION_TYPE。這個資料欄絕不會是 Null 值。

SEQUENCES

下表列出序列中繼資料。SEQUENCES,如果具備精細存取權的使用者正在查詢,系統會根據精細存取權限篩選資料列。

資料欄名稱 類型 說明
CATALOG STRING 包含序列的目錄名稱。
SCHEMA STRING 包含序列的結構定義名稱。
NAME STRING 序列名稱。
DATA_TYPE STRING 序列值的類型。使用 INT64 資料型別。

SEQUENCE_OPTIONS

下表列出序列的設定選項。SEQUENCE_OPTIONS 如果具備精細存取權的使用者查詢資料,系統會根據精細存取權篩選資料列。

資料欄名稱 類型 說明
CATALOG STRING 包含序列的目錄名稱。
SCHEMA STRING 包含序列的結構定義名稱。
NAME STRING 序列名稱。
OPTION_NAME STRING 序列選項的名稱。
OPTION_TYPE STRING 這個選項值類型的資料類型名稱。
OPTION_VALUE STRING 序列選項值。剖析值所產生的運算式必須允許轉換為 OPTION_TYPE。

SPANNER_STATISTICS

下表列出可用的查詢最佳化工具統計資料套件。

資料欄名稱 類型 說明
CATALOG_NAME STRING 目錄的名稱。一律為空字串。
SCHEMA_NAME STRING 結構定義的名稱。如果是預設結構定義,這個名稱是空白的;如果是其他結構定義,這個值是非空白 (例如 INFORMATION_SCHEMA 本身)。 這個資料欄絕不會是 Null 值。
PACKAGE_NAME STRING 統計資料套件的名稱。
ALLOW_GC BOOL 如果統計資料套件可免於垃圾收集,則為 FALSE;否則為 TRUE。
這個屬性必須設為 FALSE,才能在提示中或透過用戶端 API 參照統計資料套件。

VIEWS

這個經過列篩選的資料表會列出資料庫中的檢視區塊。具有資料庫層級 IAM 權限的主體,以及獲准存取 spanner_info_reader 系統角色或該角色成員的主體,都能查看這個檢視表中的所有資料列。其他所有主體只能查看已授予目前資料庫角色、目前資料庫角色所屬角色或 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 系統角色或該角色成員的主體,都能查看這個檢視表中的所有資料列。所有其他主體只能查看授予目前資料庫角色或目前資料庫角色所屬角色的角色成員資格。

由於所有資料庫角色都是公開角色的成員,因此結果會省略公開角色中隱含成員資格的記錄。

資料欄名稱 類型 說明
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 系統角色或該角色成員的主體,都能查看這個檢視表中的所有資料列。其他所有主體只能看到變更串流的資料列,而目前資料庫角色、目前資料庫角色所屬的角色,或 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 系統角色或該角色成員的主體,都能查看這個檢視表中的所有資料列。其他所有主體只能看到變更串流的選項,這些變更串流的 SELECT 權限已授予目前資料庫角色、目前資料庫角色所屬的角色,或是 public。

資料欄名稱 類型 說明
CHANGE_STREAM_CATALOG STRING 變更串流目錄的名稱。一律為空字串。
CHANGE_STREAM_SCHEMA STRING 變更串流的結構定義名稱。一律為空字串。
CHANGE_STREAM_NAME STRING 變更串流的名稱。
OPTION_NAME STRING 變更串流選項的名稱。
OPTION_TYPE STRING 變更串流選項的資料類型。
OPTION_VALUE STRING 變更串流選項值。

CHANGE_STREAM_PRIVILEGES

這個經過資料列篩選的資料表會列出授予任何資料庫角色 (包括 public) 的所有精細存取權控管權限。具有資料庫層級 IAM 權限的主體,以及獲准存取 spanner_info_reader 系統角色或該角色成員的主體,都能查看這個檢視表中的所有資料列。其他所有主體只能查看授予目前資料庫角色、目前資料庫角色所屬角色,或 public 的變更串流權限。

資料欄名稱 類型 說明
CHANGE_STREAM_CATALOG STRING 包含變更串流的目錄名稱 (空字串)。
CHANGE_STREAM_SCHEMA STRING 包含變更串流的結構定義名稱 (空白字串)。
CHANGE_STREAM_NAME STRING 變更串流的名稱。
PRIVILEGE_TYPE STRING SELECT (變更串流只允許這項權限)。
GRANTEE STRING 獲授這項權限的資料庫角色名稱。

ROUTINES

這個經過資料列篩選的表格會列出資料庫的所有變更串流讀取函式。具有資料庫層級 IAM 權限的主體,以及獲准存取 spanner_info_reader 系統角色或該角色成員的主體,都能查看這個檢視表中的所有資料列。其他主體只能看到變更串流讀取函式,且這些函式必須已授予目前資料庫角色、目前資料庫角色所屬角色,或 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 系統角色或該角色成員的主體,可以查看這個檢視畫面中的所有資料列。其他主體只能查看模型權限,前提是目前資料庫角色、目前資料庫角色所屬的角色,或 public 具有EXECUTE精細存取控管EXECUTE權限。

資料欄名稱 類型 說明
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

後續步驟

  • 瞭解可用的內省工具,協助您調查資料庫問題。