logo hsb.horse
← ブログ一覧に戻る

ブログ

AWS Athenaで空でないデータベースを削除する方法

AWS Athenaで空でないデータベースを削除しようとしてエラーになったときの対処法。DROP DATABASE CASCADEコマンドの使い方。

公開日:

AWS Athenaで不要なデータベースを削除しようとして、エラーになることがある。

原因と対処法を整理する。

発生したエラー

以下のエラーが発生してデータベースを削除できない。

FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask.
MetaException(message:Unable to drop database: InvalidOperationException(message:Database database_name is not empty.))

データベースにテーブルやビューが残っているため、そのままでは削除できない。

解決方法

CASCADEオプションを使うと、データベース内のテーブルやビューも含めて削除できる。

DROP SCHEMA IF EXISTS database_name CASCADE;

DROP DATABASEの代わりにDROP SCHEMAを使い、CASCADEを付ける。

これで、データベース内のすべてのオブジェクトが削除される。

注意点

CASCADEを使うと、データベース内のすべてのテーブルとビューが削除される。

誤って重要なデータベースを削除しないよう、事前に確認すること。

参考

まとめ

Athenaで空でないデータベースを削除するには、DROP SCHEMA ... CASCADEを使う。

ドキュメントに普通に書いてある内容だが、エラーメッセージから解決方法がすぐ分からないことがあるため、メモとして残しておく。