

 Amazon Redshift は、パッチ 198 以降、新しい Python UDF の作成をサポートしなくなります。既存の Python UDF は、2026 年 6 月 30 日まで引き続き機能します。詳細については、[ブログ記事](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)を参照してください。

# DROP SCHEMA
<a name="r_DROP_SCHEMA"></a>

スキーマを削除します。外部スキーマの場合は、そのスキーマに関連付けられている外部データベースも削除できます。このコマンドを元に戻すことはできません。

## 必要な権限
<a name="r_DROP_SCHEMA-privileges"></a>

DROP SCHEMA に必要な権限を以下に示します。
+ スーパーユーザー
+ スキーマの所有者
+ DROP SCHEMA の権限を持つユーザー

## 構文
<a name="r_DROP_SCHEMA-synopsis"></a>

```
DROP SCHEMA [ IF EXISTS ] name [, ...]
[ DROP EXTERNAL DATABASE ]
[ CASCADE | RESTRICT ]
```

## パラメータ
<a name="r_DROP_SCHEMA-parameters"></a>

IF EXISTS  
指定されたスキーマが存在しない場合、コマンドはエラーで終了するのではなく、何も変更しないで、スキーマが存在しないというメッセージを返すことを示す句。  
この句は、存在しないスキーマに対して DROP SCHEMA を実行してもスクリプトが失敗しないため、スクリプトを作成する際に便利です。

 *.name*   
削除するスキーマの名前。複数のスキーマ名をカンマで区切って指定できます。

 DROP EXTERNAL DATABASE   
外部スキーマが削除された場合、その外部スキーマに関連付けられている外部データベースがあれば、それを削除することを示す句。外部データベースが存在しない場合、コマンドは外部データベースが存在しないことを示すメッセージを返します。複数の外部スキーマが削除されると、指定されたスキーマに関連付けられているすべてのデータベースが削除されます。  
外部データベースにテーブルなどの依存オブジェクトが含まれている場合は、CASCADE オプションを指定して、その依存オブジェクトも削除します。  
外部データベースを削除すると、そのデータベースに関連付けられている他の外部スキーマにおいても、そのデータベースが削除されます。そのデータベースを使用する他の外部スキーマで定義されているテーブルも削除されます。  
DROP EXTERNAL DATABASE は、HIVE メタストアに格納されている外部データベースをサポートしません。

CASCADE  
スキーマ内のすべてのオブジェクトを自動的に削除することを示すキーワード。DROP EXTERNAL DATABASE が指定されると、外部データベース内のすべてのオブジェクトも削除されます。

RESTRICT  
スキーマまたは外部データベースにオブジェクトが含まれている場合は、スキーマまたは外部データベースを削除しないことを示すキーワード。この動作がデフォルトです。

## 例
<a name="r_DROP_SCHEMA-example"></a>

次の例では、S\$1SALES というスキーマを削除します。この例では、オブジェクトを含むスキーマが削除されないように安全策として RESTRICT を使用しています。この場合、スキーマを削除する前にスキーマオブジェクトを削除する必要があります。

```
drop schema s_sales restrict;
```

次の例では、S\$1SALES というスキーマと、そのスキーマに依存するすべてのオブジェクトを削除します。

```
drop schema s_sales cascade;
```

次の例では、S\$1SALES スキーマが存在する場合は削除し、存在しない場合は何もせずにメッセージを返します。

```
drop schema if exists s_sales;
```

次の例では、S\$1SPECTRUM という名前の外部スキーマとそれに関連付けられている外部データベースを削除します。この例では RESTRICT を使用しているため、スキーマとデータベースにオブジェクトが含まれている場合は、スキーマとデータベースが削除されません。この場合、スキーマとデータベースを削除する前に依存オブジェクトを削除する必要があります。

```
drop schema s_spectrum drop external database restrict;
```

次の例では、複数のスキーマとそれらに関連付けられている外部データベースを、依存オブジェクトとともに削除します。

```
drop schema s_sales, s_profit, s_revenue drop external database cascade;
```