結構描述 - Amazon Redshift

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

結構描述

資料庫包含一或多個具名結構描述。資料庫中的每個結構描述都包含資料表和其他類型的具名物件。依預設,資料庫具有名為 PUBLIC 的單一結構描述。您可以使用結構描述,在常見名稱下將資料庫物件分組。結構描述與檔案系統目錄相似,但結構描述無法巢狀化。

相同的資料庫物件名稱可在相同資料庫的不同結構描述中使用,而不會發生衝突。例如,MY_SCHEMA 和 YOUR_SCHEMA 都可以包含名為 MYTABLE 的資料表。具有必要權限的使用者可以跨資料庫中的多個結構描述存取物件。

依預設,物件是在資料庫搜尋路徑中的第一個結構描述內建立。如需相關資訊,請參閱本節後續的搜尋路徑

結構描述可以幫助在多使用者環境中採用下列方式解決組織和並行問題:

  • 允許多個開發人員可在同一個資料庫中工作,而彼此不會互相干擾。

  • 將資料庫物件組織成邏輯群組,讓它們更便於管理。

  • 讓應用程式能夠將其物件放入個別結構描述中,以便其名稱將不會與其他應用程式使用的物件名稱發生衝突。

建立、更改和刪除結構描述

任何使用者都可以建立結構描述,以及更改或捨棄他們擁有的結構描述。

您可以執行下列動作:

  • 若要建立結構描述,請使用 CREATE SCHEMA 命令。

  • 若要變更結構描述的擁有者,請使用 ALTER SCHEMA 命令。

  • 若要刪除結構描述及其物件,請使用 DROP SCHEMA命令。

  • 若要在結構描述內建立資料表,請建立格式為 schema_name.table_name 的資料表。

若要檢視所有結構描述的清單,請查詢 PG_NAMESPACE 系統目錄資料表:

select * from pg_namespace;

若要檢視屬於結構描述的資料表清單,請查詢 PG_TABLE_DEF 系統目錄資料表。例如,下列查詢會傳回 PG_CATALOG 結構描述的資料表清單。

select distinct(tablename) from pg_table_def where schemaname = 'pg_catalog';

搜尋路徑

搜尋路徑是在 search_path 參數中搭配逗號分隔的結構描述名稱清單定義的。當以未包括結構描述限定詞的簡單名稱參考物件 (如資料表或函數) 時,此搜尋路徑會指定搜尋結構描述的順序。

如果在未指定目標結構描述的情況下建立物件,則物件會新增至搜尋路徑中列出的第一個結構描述。當名稱相同的物件存在於不同結構描述時,未指定結構描述的物件名稱將參考搜尋路徑中的第一個結構描述,其中包含具有該名稱的物件。

若要變更目前工作階段的預設結構描述,請使用 SET 命令。

如需詳細資訊,請參閱《組態參考》中的 search_path 說明。

結構描述型許可

結構描述型權限是由結構描述的擁有者決定:

  • 缺省情況下,所有使用者對資料庫的 PUBLIC 結構描述都具有 CREATE 和 USAGE 權限。若要不允許使用者在資料庫的 PUBLIC 結構描述內建立物件,請使用REVOKE命令刪除該權限。

  • 除非物件擁有者將 USAGE 權限授予他們,否則使用者無法存取結構描述中他們未擁有的任何物件。

  • 如果已將另一個使用者所建立之結構描述的 CREATE 權限授予使用者,則那些使用者便可在該結構描述中建立物件。