スキーマの作成方法
スキーマの作成方法について説明します。
スキーマの作成
ここではスキーマを作成のSQLを説明します。
構文は以下の通りです。
構文の詳細は公式サイトを参照ください。
【文法】
CREATE SCHEMA スキーマ名【実行例】
実際にSQLを実行しスキーマを作成します。
SQLは以下の通りです。
CREATE SCHEMA SCHM01 ;
SQLの実行結果は以下の通りです。
これでスキーマが作成されました。
SQL> CREATE SCHEMA SCHM01 2 ; DB250000I: コマンドは正常に完了しました。
スキーマが作成されたか確認します。
SELECT SCHEMANAME FROM SYSCAT.SCHEMATA WHERE SCHEMANAME = 'SCHM01' ;
実行結果は以下になります。レコードが抽出されました。
SQL> SELECT SCHEMANAME 2 FROM SYSCAT.SCHEMATA 3 WHERE SCHEMANAME = 'SCHM01' 4 ; SCHEMANAME ---------------------------------------------------------- SCHM01
スキーマの削除
スキーマの削除のSQLを説明します。
構文は以下の通りです。
【文法】
DROP SCHEMA スキーマ名 RESTRICT【実行例】
実際にSQLを実行しスキーマを削除します。
SQLは以下の通りです。
DROP SCHEMA SCHM01 RESTRICT ;
SQLの実行結果は以下の通りです。
これでスキーマが削除されました。
SQL> DROP SCHEMA SCHM01 RESTRICT 2 ; DB250000I: コマンドは正常に完了しました。 SQL> SELECT SCHEMANAME 2 FROM SYSCAT.SCHEMATA 3 WHERE SCHEMANAME = 'SCHM01' 4 ; 取り出された行はありません。
ちなみに、スキーマが空の場合のみ削除が可能です。
空ではない場合はエラーになります。
以下の例では、TESTテーブルが存在するためエラーとなっています。
SQL> DROP SCHEMA SCHM01 RESTRICT 2 ; 行 1 の近くでエラー: SQL0478N ターゲット・オブジェクトに 1 つ以上の従属関係が存在するため、ステートメントが失敗しました。ターゲット・オブジェクト・タイプは "SCHEMA" です。ターゲット・オブジェクトに従属しているオブジェクトの名前は "SCHM01.TEST" です。ターゲット・オブジェクトに従属しているオブジェクトのタイプは "TABLE" です。