Schema是資料庫的命名空間,它是一個資料庫內部的對象(表、索引、視圖、預存程序、操作符)的集合。Schema在每個資料庫中是唯一的。每個資料庫都有一個名為public的預設Schema。
如果使用者沒有建立任何Schema,對象會被建立在public schema中。所有的該資料庫角色(使用者)都在預設的public schema中擁有CREATE和USAGE特權。
建立Schema
使用CREATE SCHEMA命令來建立一個新的Schema,命令如下:
CREATE SCHEMA <schema_name> [AUTHORIZATION <username>]說明
<schema_name>:schema名稱。
<username>:如指定authorization username,則建立的schema屬於該使用者。否則,屬於執行該命令的使用者。
樣本:
CREATE SCHEMA myschema;設定Schema搜尋路徑
資料庫的search_path用於配置參數設定Schema的搜尋順序。
使用ALTER DATABASE命令可以設定搜尋路徑。例如:
ALTER DATABASE mydatabase SET search_path TO myschema, public, pg_catalog;您也可以使用ALTERROLE命令為特定的角色(使用者)設定search_path。例如:
ALTER ROLE sally SET search_path TO myschema, public, pg_catalog;查看當前Schema
使用current_schema()函數可以查看當前的Schema。例如:
SELECT current_schema();您也可以使用SHOW命令查看當前的搜尋路徑。例如:
SHOW search_path;刪除Schema
使用DROP SCHEMA命令刪除一個空的Schema。例如:
DROP SCHEMA myschema;說明
預設情況下,Schema它必須為空白才可以刪除。
刪除一個Schema連同其中的所有對象(表、資料、函數等等),可以使用:
DROP SCHEMA myschema CASCADE;