資訊結構定義是內建結構定義,適用於所有 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 介面存取,例如:executeQueryAPIgcloud spanner databases execute-sql指令- Google Cloud 控制台中資料庫的「Query」(查詢) 頁面。
其他單一讀取方法不支援
information_schema。
- 對
information_schema執行的查詢可以使用強式、有界限的過時或確切過時時間戳記界限。 - 如果您使用的是 GoogleSQL 方言資料庫,請參閱「GoogleSQL 方言資料庫的資訊結構定義」。
與 information_schema for PostgreSQL 的差異
PostgreSQL 方言資料庫的 information_schema 資料表包含開放原始碼 PostgreSQL 的 information_schema 資料表資料欄,在某些情況下也包含 Spanner 的資料欄。在這些資料表中,開放原始碼 PostgreSQL 資料欄會先顯示,且順序與開放原始碼 PostgreSQL 資料庫中的順序相同,而 Spanner 的任何不同資料欄則會附加在後。在 Google Cloud CLI 中使用 PostgreSQL 方言資料庫時,為開放原始碼 PostgreSQL 版 information_schema 編寫的查詢應可直接運作,不需修改。
PostgreSQL information_schema 資料庫的其他顯著差異如下:
- 開放原始碼 PostgreSQL 的部分資料表資料欄可供使用,但不會填入 PostgreSQL 方言資料庫。
- PostgreSQL 方言資料庫會使用
public做為預設結構定義名稱。 - 自動產生的限制名稱格式與開放原始碼 PostgreSQL 資料庫不同。
- PostgreSQL 方言資料庫不支援與開放原始碼 PostgreSQL 功能相關的資料表,因此無法使用。
- Spanner 支援的部分資料表 (例如
database_options、index_columns、indexes和spanner_statistics) 也可以使用,但開放原始碼 PostgreSQL 不支援。
information_schema 資料表和檢視表的資料列篩選功能
具備資料庫層級 IAM 權限的主體,以及獲授予 spanner_info_reader 系統角色 (或該角色成員) 存取權的主體,可以查看所有 information_schema 資料表和檢視表中的所有資料列。對於其他主體,Spanner 會根據目前的資料庫角色篩選資料列。下節的資料表和檢視表說明,會指出 Spanner 如何篩選各資料表和檢視表的資料列。
PostgreSQL 方言資料庫中 information_schema 的資料表
information_schema 中的資料表和檢視表與開放原始碼 PostgreSQL 的 information_schema 中的資料表和檢視表相容。
下列各節說明 PostgreSQL 方言資料庫 information_schema 中的資料表和檢視表。
applicable_roles
這個資料列篩選檢視畫面會列出明確授予所有資料庫角色的所有角色成員資格。如果主體具備資料庫層級 IAM 權限,且已獲授予 spanner_info_reader 系統角色或該角色成員的存取權,則可查看這個檢視表中的所有資料列。所有其他主體只能查看授予目前資料庫角色的角色成員資格,或目前資料庫角色所屬角色的成員資格。
由於所有資料庫角色都是公開角色的成員,因此結果會省略公開角色中隱含成員資格的記錄。
| 資料欄名稱 | 類型 | 說明 |
|---|---|---|
grantee |
character varying |
要授予成員資格的資料庫角色名稱。 |
role_name |
character varying |
授予這項成員資格的父項資料庫角色名稱。 |
is_grantable |
character varying |
未使用。一律NO。 |
change_stream_columns
這個資料列篩選檢視畫面包含資料表資料欄,以及監控這些資料欄的異動串流相關資訊。每一列會說明一個變更串流和一個資料欄。如果變更串流追蹤整個資料表,則該資料表中的資料欄不會顯示在這個檢視畫面中。
具備資料庫層級 IAM 權限的主體,以及獲授予 spanner_info_reader 系統角色或該角色成員存取權的主體,可以查看這個檢視表中的所有資料列。所有其他主體只能查看變更串流的資料列,前提是目前的資料庫角色、目前資料庫角色所屬的角色,或 public 具備 SELECT 權限。
| 資料欄名稱 | 類型 | 說明 |
|---|---|---|
change_stream_catalog |
character varying |
資料庫名稱。 |
change_stream_schema |
character varying |
變更串流的結構定義名稱。如果是 PostgreSQL 方言資料庫,預設值為 public。 |
change_stream_name |
character varying |
變更串流的名稱。 |
table_catalog |
character varying |
資料庫名稱。 |
table_schema |
character varying |
資料表結構定義的名稱。如果是 PostgreSQL 方言資料庫,預設值為 public。 |
table_name |
character varying |
這個資料列參照的資料表名稱。 |
column_name |
character varying |
這個資料列參照的資料欄名稱。 |
change_stream_options
這個資料列篩選檢視畫面包含變更串流的設定選項。如果主體具備資料庫層級 IAM 權限,且已獲授予 spanner_info_reader 系統角色或該角色成員的存取權,就能查看這個檢視表中的所有資料列。所有其他主體只能看到變更串流的選項,其中 SELECT 權限已授予目前的資料庫角色、目前資料庫角色所屬的角色,或 public。
| 資料欄名稱 | 類型 | 說明 |
|---|---|---|
change_stream_catalog |
character varying |
資料庫名稱。 |
change_stream_schema |
character varying |
變更串流的結構定義名稱。如果是 PostgreSQL 方言資料庫,預設值為 public。 |
change_stream_name |
character varying |
變更串流的名稱。 |
option_name |
character varying |
變更串流選項的名稱。 |
option_type |
character varying |
變更串流選項的資料類型。 |
option_value |
character varying |
變更串流選項的值。 |
change_stream_privileges
這個資料列篩選檢視表會列出所有變更串流中,授予任何資料庫角色 (包括 public) 的所有精細的存取控管權限。如果主體具備資料庫層級 IAM 權限,且已獲授予 spanner_info_reader 系統角色或該角色成員的存取權,則可查看這個檢視表中的所有資料列。所有其他主體只能查看授予變更串流的權限,這些權限會授予目前資料庫角色、目前資料庫角色所屬的角色,或 public。
| 資料欄名稱 | 類型 | 說明 |
|---|---|---|
grantor |
character varying |
未使用。一律NULL。 |
grantee |
character varying |
授予這項權限的資料庫角色名稱。 |
change_stream_catalog |
character varying |
資料庫名稱。 |
change_stream_schema |
character varying |
包含變更串流的結構定義名稱。PostgreSQL 方言資料庫的預設值為 public。 |
change_stream_name |
character varying |
變更串流的名稱。 |
privilege_type |
character varying |
權限類型 (僅限 SELECT)。 |
is_grantable |
character varying |
未使用。一律NO。 |
change_stream_tables
這個資料列篩選檢視畫面包含資料表和監控資料表的變更串流相關資訊。每一列會說明一個資料表和一個變更串流。如果主體具備資料庫層級 IAM 權限,或有權存取 spanner_info_reader 系統角色或該角色的成員,則可查看這個檢視表中的所有資料列。所有其他主體只能查看變更串流的資料列,且該變更串流的 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 FGAC 權限已授予目前資料庫角色、目前資料庫角色所屬的角色,或 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 本身) 則為非空白。這個資料欄絕不會是空值。 |
table_name |
character varying |
外部資料表的名稱。 |
column_name |
character varying |
資料欄的名稱。 |
option_name |
character varying |
可唯一識別選項的 SQL 識別碼。這個 ID 是 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 本身) 則為非空白。這個資料欄絕不會是空值。 |
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 |
資料欄的目前狀態。新增至現有資料表的已儲存生成資料欄,可能需要經過多個使用者可觀察的狀態,才能完全使用。可能的值包括:
|
on_update_expression |
character varying |
資料欄 `ON UPDATE` 運算式的字串表示法。如果資料欄沒有 `ON UPDATE` 運算式,則值為 `NULL`。 |
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,非索引鍵資料欄的值則為 NULL (例如在索引的 STORING 子句中指定的資料欄)。 |
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 FGAC 權限授予下列對象:目前的資料庫角色、目前資料庫角色所屬的角色,或 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。 |
spanner_type |
character varying |
常式的詳細傳回類型。如果傳回 ARRAY,則會包含子類型。 |
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、SET NULL 或 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
這個資料列篩選檢視畫面會列出授予所有異動串流讀取函式的 EXECUTE 權限,對象為任何資料庫角色,包括 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
|
常式的結構定義名稱。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 FGAC 權限授予目前的資料庫角色、目前資料庫角色所屬的角色,或 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 |
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。 |
spanner_type |
character varying |
常式的詳細傳回類型。如果傳回 ARRAY,則會包含子類型。 |
spanner_determinism |
character varying |
使用者指定的函式決定性 (DETERMINISTIC、NOT_DETERMINISTIC_STABLE 或 NOT_DETERMINISTIC_VOLATILE)。詳情請參閱 [provolatile](https://www.postgresql.org/docs/current/catalog-pg-proc.html#:~:text=provolatile) 的說明。 |
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 |
資料表類型。可能的值包括「基礎資料表」、「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 FGAC 權限的檢視表,這些權限是授予目前資料庫角色、目前資料庫角色所屬的角色,或 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;
``` ## What's
next {: #whats-next}
+ Learn about available [Introspection tools](/spanner/docs/introspection) to
help you investigate database issues.