Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - SQL リファレンス » SQL の使用 » SQL 文 » SQL 文 (A ~ D)

 

CREATE SCHEMA 文

この文は、データベース・ユーザに対して、テーブル、ビュー、パーミッションのコレクションを作成するために使用します。

構文
CREATE SCHEMA AUTHORIZATION userid
[
   create-table-statement
   | create-view-statement
   | grant-statement
  ] ... ;
備考

CREATE SCHEMA 文はスキーマを作成します。スキーマとは、テーブル、ビュー、関連パーミッションのコレクションのことです。

userid には、現在の接続のユーザ ID を指定します。別のユーザに対するスキーマを作成することはできません。

CREATE SCHEMA 文に含まれるいずれかの文にエラーが発生すると、CREATE SCHEMA 文全体がロールバックされます。

CREATE SCHEMA 文を使用すると、個別の CREATE と GRANT 文を 1 つにまとめて一度に処理することができます。データベース内に SCHEMA データベース・オブジェクトは作成されません。オブジェクトを削除するには、個別の DROP TABLE または DROP VIEW 文を使用します。パーミッションを取り消すには、付与されているそれぞれのパーミッションに対して REVOKE 文を使用します。

個々の CREATE または GRANT 文は、文デリミタで区切りません。文デリミタは CREATE SCHEMA 文自身の末尾を区切ります。

それぞれの CREATE または GRANT 文は、まずオブジェクトを作成してから、それにパーミッションを付与するという順番に並べます。

現在は 1 ユーザに対して複数のスキーマを作成することができますが、このような処理はおすすめできませんし、今後のバージョンではサポートされないかもしれません。

パーミッション

RESOURCE 権限が必要です。

関連する動作

オートコミット。

参照
標準と互換性
  • SQL/2003   コア機能。

  • Sybase   SQL Anywhere では、CREATE SCHEMA 文内での REVOKE 文の使用をサポートされていません。また、Transact-SQL バッチまたはプロシージャ内での使用も許可されていません。

次の CREATE SCHEMA 文は、2 つのテーブルがあるスキーマを作成します。文は、RESOURCE 権限を持つユーザ ID sample_user で実行します。テーブル t2 を作成する文が失敗すると、どちらのテーブルも作成されません。

CREATE SCHEMA AUTHORIZATION sample_user
CREATE TABLE t1 ( id1 INT PRIMARY KEY )
CREATE TABLE t2 ( id2 INT PRIMARY KEY );

次の CREATE SCHEMA 文の文デリミタは、最初の CREATE TABLE 文の後に配置されます。文デリミタは CREATE SCHEMA 文の終わりをマークするので、例は、データベース・サーバによって 2 つの文バッチとして解釈されます。テーブル t2 を作成する文が失敗しても、テーブル t1 は作成されます。

CREATE SCHEMA AUTHORIZATION sample_user
CREATE TABLE t1 ( id1 INT PRIMARY KEY );
CREATE TABLE t2 ( id2 INT PRIMARY KEY );