資訊結構定義是每個 PostgreSQL 資料庫都有的內建結構定義。您可以對 information_schema 中的資料表執行 SQL 查詢,以擷取資料庫的結構定義中繼資料。
舉例來說,下列查詢會擷取資料庫中所有使用者定義資料表的名稱:
  SELECT
    table_schema,
    table_name
  FROM
    information_schema.tables
  WHERE
    table_schema NOT IN ('pg_catalog', 'information_schema', 'SPANNER_SYS')
    AND table_type = 'BASE TABLE'
用量
- information_schema資料表只能透過 SQL 介面使用,例如:- executeQueryAPI
- gcloud 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 system 角色 (或該角色的成員) 的主體,可以查看所有 information_schema 資料表和檢視表中的所有資料列。如果是其他主體,Spanner 會根據目前的資料庫角色篩選資料列。下表和後續各節的檢視說明,會指出 Spanner 如何篩選每個資料表和檢視區塊的資料列。
適用於 PostgreSQL 方言資料庫的 information_schema 中的資料表
information_schema 中的資料表和檢視區塊與開放原始碼 PostgreSQL 的 information_schema 中的資料表和檢視區塊相容。
以下各節說明 information_schema 中適用於 PostgreSQL 方言資料庫的資料表和檢視區塊。
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 系統角色或該角色成員的主體,都能查看這個檢視表中的所有資料列。其他所有主體只能查看已授予目前資料庫角色、目前資料庫角色所屬角色,或 public SELECT 細部存取權控管權限的變更串流。
| 資料欄名稱 | 類型 | 說明 | 
|---|---|---|
| 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 | 限制的結構定義名稱。預設值為 public適用於 PostgreSQL 方言資料庫。 | 
| 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 子句中的表格。如果是唯一或主鍵限制,這個檢視畫面會識別限制所屬的資料表。這個檢視畫面不包含檢查限制和非空值限制。
| 資料欄名稱 | 類型 | 說明 | 
|---|---|---|
| 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。 | 
placements
這個表格會列出資料庫中的刊登位置。
| 資料欄名稱 | 類型 | 說明 | 
|---|---|---|
| placement_name | character varying | 刊登位置名稱。 | 
| is_default | character varying | 指定資料欄是否可為 Null 值的字串。依據 SQL 標準,字串為 YES或NO,而不是布林值。 | 
placement-options
這個表格會列出 CREATE PLACEMENT 陳述式 OPTIONS 子句中,針對每個刊登位置設定的選項。
| 資料欄名稱 | 類型 | 說明 | 
|---|---|---|
| placement_name | character varying | 刊登位置名稱。 | 
| option_name | character varying | 刊登位置選項的名稱。 option_name的有效值包括:
 | 
| option_type | character varying | 刊登位置選項的資料類型。 | 
| option_value | character varying | 刊登位置選項的值。如果是 instance_partition,這是執行個體分區的名稱。如果是default_leader,則為預設主要區域的名稱。 | 
locality-group-options
這個表格會列出每個地區群組的名稱,以及在 CREATE LOCALITY GROUP 陳述式的 OPTIONS 子句中,為地區群組設定的選項。
| 資料欄名稱 | 類型 | 說明 | 
|---|---|---|
| locality_group_name | character varying | 地區群組的名稱。 | 
| option_name | character varying | 地區群組選項的名稱。有效選項如下: 
 | 
| option_value | character varying | 區域群組選項的值。如果是 storage,則為ssd或hdd。ssd_to_hdd_spill_timespan:這是資料必須儲存在 SSD 的時間長度,之後才會移至 HDD 儲存空間。舉例來說,10d是 10 天。最短時間為一小時。 | 
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 系統角色或該角色成員的主體,都能查看這個檢視表中的所有資料列。其他主體只能看到變更串流讀取函式,且這些函式必須已授予目前資料庫角色、目前資料庫角色所屬角色,或 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 | 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_bodySQL 的定義,否則為空白。 | 
| 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 系統角色或該角色成員的主體,可以查看所有資料表和檢視表。其他主體只能看到符合下列任一條件的資料表:
- 
    系統會將 SELECT、INSERT、UPDATE或DELETE精細存取權控管權限授予目前資料庫角色的資料表、目前資料庫角色所屬的角色,或是public。
- 系統會將 SELECT、INSERT或UPDATE權限授予目前資料庫角色的任何資料表欄、目前資料庫角色所屬角色的任何資料表欄,或是public。
| 資料欄名稱 | 類型 | 說明 | 
|---|---|---|
| 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_schema,
  t.table_catalog,
  t.table_name,
  t.parent_table_name
FROM
  information_schema.tables AS t
WHERE
  t.table_schema NOT IN ('pg_catalog', 'information_schema', 'SPANNER_SYS')
  AND t.table_type = 'BASE TABLE'
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
傳回目前資料庫中預設結構定義的每個索引相關資訊: ```postgresql 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;
後續步驟
- 瞭解可用的內省工具,協助您調查資料庫問題。