新しいスキーマを定義します。

構文

CREATE SCHEMA AUTHORIZATION username schema_element [ ... ]

説明

CREATE SCHEMA 文を使用して、1 つ以上のオブジェクトを持つスキーマを作成できます。 username パラメーターは、スキーマの所有者を指定します。 スキーマとオブジェクトは単一のトランザクションで作成されます。 したがって、作成されたオブジェクトのすべてにはスキーマが含まれます。 それ以外の場合、作成されたオブジェクトにはスキーマが含まれません。 注意:Oracle データベースを使用している場合、新しいスキーマ (username) は作成されません。 したがって、スキーマはすでに存在している必要があります。

スキーマは、テーブルやビューなどの名前付きオブジェクトを含む名前空間です。 異なるスキーマが同じ名前のオブジェクトを持つ場合があります。 次のいずれかの方法を使用して、名前付きオブジェクトにアクセスできます。1. プレフィックスとしてスキーマ名を使用して、オブジェクトの名前を修飾します。 2. 必要なスキーマを含む検索パスを指定します。 修飾されていないオブジェクトは、現在のスキーマ (CURRENT_SCHEMA 関数で決定できる検索パスの前のスキーマ) に作成されます。 検索パスと CURRENT_SCHEMA 関数は、Oracle データベースと互換性がありません。

CREATE SCHEMA 文には、スキーマ内にオブジェクトを作成するためのサブクエリが含まれています。 サブクエリは、スキーマの作成後に発行される個別のクエリと同じ方法で処理されます。 作成されたすべてのオブジェクトは、指定されたユーザーが所有しています。

スキーマを作成するには、現在のデータベースに対する CREATE 権限が必要です。

パラメーター

パラメーター 説明
username 新しいスキーマを所有するユーザーの名前。 スキーマ名はユーザー名と同じです。 他のユーザーが所有するスキーマを作成できるのは、スーパーユーザーだけです。 注意:Oracle 互換 PolarDB データベースでは、ロールとユーザー名がすでに存在している必要があり、スキーマが存在していてはなりません。 Oracle では、スキーマと同等のユーザーがすでに存在している必要があります。
schema_element スキーマに作成されるオブジェクトを定義する SQL 文。 CREATE SCHEMA 文内で CREATE TABLE、CREATE VIEW、および GRANT 句を使用できます。 スキーマを作成した後、別のコマンドを使用して他のオブジェクトタイプを作成できます。

CREATE SCHEMA AUTHORIZATION enterprisedb
    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;