DROP SCHEMA
スキーマを削除します。外部スキーマの場合は、そのスキーマに関連付けられている外部データベースも削除できます。このコマンドを元に戻すことはできません。
必要な権限
DROP SCHEMA に必要な権限を以下に示します。
スーパーユーザー
スキーマの所有者
DROP SCHEMA の権限を持つユーザー
構文
DROP SCHEMA [ IF EXISTS ] name [, ...] [ DROP EXTERNAL DATABASE ] [ CASCADE | RESTRICT ]
パラメータ
- IF EXISTS
-
指定されたスキーマが存在しない場合、コマンドはエラーで終了するのではなく、何も変更しないで、スキーマが存在しないというメッセージを返すことを示す句。
この句は、存在しないスキーマに対して DROP SCHEMA を実行してもスクリプトが失敗しないため、スクリプトを作成する際に便利です。
- name
-
削除するスキーマの名前。複数のスキーマ名をカンマで区切って指定できます。
- DROP EXTERNAL DATABASE
-
外部スキーマが削除された場合、その外部スキーマに関連付けられている外部データベースがあれば、それを削除することを示す句。外部データベースが存在しない場合、コマンドは外部データベースが存在しないことを示すメッセージを返します。複数の外部スキーマが削除されると、指定されたスキーマに関連付けられているすべてのデータベースが削除されます。
外部データベースにテーブルなどの依存オブジェクトが含まれている場合は、CASCADE オプションを指定して、その依存オブジェクトも削除します。
外部データベースを削除すると、そのデータベースに関連付けられている他の外部スキーマにおいても、そのデータベースが削除されます。そのデータベースを使用する他の外部スキーマで定義されているテーブルも削除されます。
DROP EXTERNAL DATABASE は、HIVE メタストアに格納されている外部データベースをサポートしません。
- CASCADE
-
スキーマ内のすべてのオブジェクトを自動的に削除することを示すキーワード。DROP EXTERNAL DATABASE が指定されると、外部データベース内のすべてのオブジェクトも削除されます。
- RESTRICT
-
スキーマまたは外部データベースにオブジェクトが含まれている場合は、スキーマまたは外部データベースを削除しないことを示すキーワード。この動作がデフォルトです。
例
次の例では、S_SALES というスキーマを削除します。この例では、オブジェクトを含むスキーマが削除されないように安全策として RESTRICT を使用しています。この場合、スキーマを削除する前にスキーマオブジェクトを削除する必要があります。
drop schema s_sales restrict;
次の例では、S_SALES というスキーマと、そのスキーマに依存するすべてのオブジェクトを削除します。
drop schema s_sales cascade;
次の例では、S_SALES スキーマが存在する場合は削除し、存在しない場合は何もせずにメッセージを返します。
drop schema if exists s_sales;
次の例では、S_SPECTRUM という名前の外部スキーマとそれに関連付けられている外部データベースを削除します。この例では RESTRICT を使用しているため、スキーマとデータベースにオブジェクトが含まれている場合は、スキーマとデータベースが削除されません。この場合、スキーマとデータベースを削除する前に依存オブジェクトを削除する必要があります。
drop schema s_spectrum drop external database restrict;
次の例では、複数のスキーマとそれらに関連付けられている外部データベースを、依存オブジェクトとともに削除します。
drop schema s_sales, s_profit, s_revenue drop external database cascade;