全部產品
Search
文件中心

PolarDB:CREATE SCHEMA

更新時間:Jul 06, 2024

調用CREATE SCHEMA定義一個新的Schema。

文法

CREATE SCHEMA AUTHORIZATION username schema_element [ ... ]

說明

CREATE SCHEMA 命令的該變體可建立由 username 擁有的新 schema,並由一個或多個對象填充。schema 和對象的建立發生在單個事務中,因此要麼建立的所有對象均包含 schema,要麼都不包含。(請注意,如果使用的是 Oracle 資料庫,那麼不會建立新 schema – username,因此 schema 必須預先存在。)

schema 本質上是一個命名空間:其中包含命名物件(表、視圖等),其名稱可能與其他 schema 中存在的其他對象重複。命名物件的訪問方式如下:將 schema 名稱作為首碼以“限定”其名稱,或設定包含所需 schema 的搜尋路徑。未限定的對象在當前 schema(即搜尋路徑前面的 schema,可採用函數 CURRENT_SCHEMA 確定)中建立。(搜尋路徑概念及 CURRENT_SCHEMA 函數與 Oracle 資料庫不相容。)

CREATE SCHEMA 包含在 schema 內建立對象的子命令。子命令的處理方式與建立 schema 後發出的單獨命令基本相同。建立的所有對象均由指定的使用者擁有。

說明 要建立 schema,調用使用者必須對當前資料庫具有 CREATE 特權。

參數

參數說明
username將擁有新 schema 的使用者的名稱。schema 的名稱將與 username 相同。只有超級使用者可以建立除自己以外的使用者所擁有的 schema。(請注意,在PolarDB PostgreSQL版(相容Oracle)中,角色、username 必須已經存在,但 schema 不得存在。在Oracle 中,使用者(相當於 schema)必須存在。)
schema_element一條 SQL 陳述式,用於定義要在 schema 內建立的對象。在 CREATE SCHEMA 中,接受 CREATE TABLE、CREATE VIEW 和 GRANT 作為子句。在建立 schema 之後,可以在單獨的命令中建立其他物件類型。

樣本

CREATE SCHEMA AUTHORIZATION polardb
    CREATE TABLE empjobs (ename VARCHAR2(10), job VARCHAR2(9))
    CREATE VIEW managers AS SELECT ename FROM empjobs WHERE job = 'MANAGER'
    GRANT SELECT ON managers TO PUBLIC;