DROP SCHEMA - Amazon Redshift

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;