SQL 解説書

CREATE SCHEMA

CREATE SCHEMA ステートメントは、スキーマを定義します。 また、オブジェクトを作成して、 このステートメントでそのオブジェクトに関する特権を与えることも可能です。

呼び出し

このステートメントは、アプリケーション・プログラムに組み込むか、 または動的 SQL ステートメントを使用して発行することができます。 このステートメントは、動的に準備可能な実行可能ステートメントです。 しかし、バインド・オプション DYNAMICRULES BIND を適用する場合、 ステートメントを動的に準備することはできません (SQLSTATE 42509)。

許可

SYSADM 権限または DBADM 権限のある許可 ID は、 任意の有効な schema-name または authorization-name を指定してスキーマを作成できます。

SYSADM 権限または DBADM 権限がない許可 ID は、 ステートメントの許可 ID に一致する schema-name または authorization-name を指定しなければ スキーマを作成できません。

ステートメントに schema-SQL-statement が含まれている場合、 authorization-name (指定されていない場合、 ステートメントの許可 ID がデフォルト解釈される) が持つ特権には、 以下の特権の少なくとも 1 つが含まれている必要があります。

構文

>>-CREATE SCHEMA------------------------------------------------>
 
>-----+-schema-name-------------------------------------+------->
      +-AUTHORIZATION--authorization-name---------------+
      '-schema-name--AUTHORIZATION--authorization-name--'
 
>-----+------------------------------+-------------------------><
      |  .------------------------.  |
      |  V                        |  |
      '----schema-SQL-statement---+--'
 

説明

schema-name
スキーマの名前を指定します。 この名前は、カタログですでに記述されているスキーマを指定するものであってはなりません (SQLSTATE 42710)。 "SYS" で始まる名前は使用できません (SQLSTATE 42939)。 スキーマの所有者は、ステートメントを発行した許可 ID です。

AUTHORIZATION authorization-name
スキーマの所有者であるユーザーを指定します。 値 authorization-name は、スキーマの名前の指定にも使用されます。 authorization-name は、 カタログですでに記述されているスキーマを指定するものであってはなりません (SQLSTATE 42710)。

schema-name AUTHORIZATION authorization-name
authorization-name という名前のユーザーをスキーマの所有者として、 schema-name という名前のスキーマを指定します。 schema-name は、 カタログですでに記述されているスキーマのスキーマ名を指定するものであってはなりません (SQLSTATE 42710)。 schema-name には "SYS" で始まる名前は使用できません (SQLSTATE 42939)。

schema-SQL-statement
CREATE SCHEMA ステートメントの一部として組み込むことができる SQL ステートメントは、 次のとおりです。

例 1: DBADM 権限のあるユーザーが、 RICK という名前のスキーマをユーザー RICK を所有者として作成します。

    CREATE SCHEMA RICK AUTHORIZATION RICK

例 2: 部品の在庫表と部品番号の索引があるスキーマを作成します。 ユーザー JONES に、表に対する権限を与えます。

    CREATE SCHEMA INVENTRY
 
     CREATE TABLE PART (PARTNO   SMALLINT NOT NULL,
                        DESCR    VARCHAR(24),
                        QUANTITY INTEGER)
 
     CREATE INDEX PARTIND ON PART (PARTNO)
 
     GRANT ALL ON PART TO JONES

例 3: 2 つの表がある PERS という名前のスキーマを作成します。 それぞれの表には他の表を参照する外部キーがあります。 これは、 ALTER TABLE ステートメントを使用せずにこのような表のペアを作成する CREATE SCHEMA ステートメントの機能の一例です。

    CREATE SCHEMA PERS
 
     CREATE TABLE ORG (DEPTNUMB  SMALLINT NOT NULL,
                        DEPTNAME VARCHAR(14),
                        MANAGER  SMALLINT,
                        DIVISION VARCHAR(10),
                        LOCATION VARCHAR(13),
                        CONSTRAINT PKEYDNO
                           PRIMARY KEY (DEPTNUMB),
                        CONSTRAINT FKEYMGR
                           FOREIGN KEY (MANAGER)
                           REFERENCES STAFF (ID) )
 
     CREATE TABLE STAFF (ID        SMALLINT NOT NULL,
                          NAME     VARCHAR(9),
                          DEPT     SMALLINT,
                          JOB      VARCHAR(5),
                          YEARS    SMALLINT,
                          SALARY   DECIMAL(7,2),
                          COMM     DECIMAL(7,2),
                          CONSTRAINT PKEYID
                             PRIMARY KEY (ID),
                          CONSTRAINT FKEYDNO
                             FOREIGN KEY (DEPT)
                             REFERENCES ORG (DEPTNUMB) )


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]