この文は、データベース・ユーザに対して、テーブル、ビュー、パーミッションのコレクションを作成するために使用します。
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 ); |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |