模式: DB內組織對象的一種邏輯結構。位於每一個數據庫(DB)下面。
PUBLIC 模式: 每一個DB都自帶的schema。創建的任何對象,在沒有指定schema時,默認創建到PUBLIC下。
創建模式:
1、使用CREATE SCHEMA命令
CREATE SCHEMA sc01;
2、將Owner設置爲其他的Role:
create schema sc02 AUTHORIZATION dylan;
可能會報錯:permission denied for database testdw;
原因:dylan用戶沒有對testdw的操作權限
解決方案:爲用戶賦權:
grant all on database tetstdw to dylan;
3、訪問模式的對象:schema.table
模式搜索路徑:
若不想通過指定模式名稱的方式來搜索需要的對象,可以通過設置search_path的方式來實現,第一個模式爲缺省。
設置搜索路徑:
1、通過ALTER DATABASE 修改DB的模式搜索路徑,需要退出[\q]重連才能生效。
alter database testdw set search_path to sc01,public,pg_catalog;
2、通過ALTER ROLE 修改ROLE(User)的模式搜索路徑:
alter role dylan set search_path to sc01,public,pg_catalog;
查看當前的搜索路徑:
show search_path;
select current_schema();
刪除模式:
使用DROP SCHEMA 命令(空模式):
DROP SCHEMA sc01;
刪除模式及相關的所有對象:
DROP SCHEMA sc01 cascade;
查看用戶的search_path:
select * from pg_roles;
系統模式簡介:
pg_catalog模式存儲系統日誌表、內置類型、函數和運算符。
Information_schema模式由一個標準化視圖構成。其中包含DB中對象的信息。
pg_toast模式是存儲大對象(系統內部使用)。
pg_bitmapindex模式存儲bitmap index對象(系統內部使用)。
pg_aoseg存儲append-only表(系統內部使用)。
gp_toolkit是管理用的模式,可以查看和檢查系統日誌文件和其他系統信息。