DROP TABLE
表定義を削除するには、DROP TABLE
文を使用します。
DROP TABLE [IF EXISTS] table-name
説明:
-
IF EXISTS
はオプションです。このオプションを使用して指定した表が存在しない場合は、次のメッセージが返されます。sql-> drop table if exists foo; Statement did not require execution
IF EXISTS
を指定しない場合に表が存在しないと、DROP文は次のように返します。sql-> drop table foo; Error handling command drop table foo: Error: User error in query: DROP TABLE failed for table foo: Table does not exist: foo
IF EXISTS
を指定し、表が存在する場合は、DROP文が正常に実行されます。sql-> create table foo (first string, second integer, primary key (second)); Statement completed successfully sql-> drop table if exists foo; Statement completed successfully
-
table-nameは削除する表の名前です。
DROP TABLE文を実行するとすぐに、ユーザーは削除された表またはそのデータにアクセスできなくなります。DROP TABLE文を実行すると、すべての表データの削除がバックグラウンドで非同期に行われます。
特定のリージョンのMR表を削除しても、MR表は引き続き他の関連リージョンに残ります。特定のMR表を複数リージョンから削除する場合は、各リージョンで
DROP TABLE
文を個別に実行する必要があります。
注意:
MR表がすべてのリモート・リージョンで削除され、ローカル・リージョンには存在する場合、MR表は単一のリージョンにリンクされたままになります。このような単一リージョンを持つMR表は、将来さらに他のリージョンに展開できます。つまり、必要に応じて、将来この表に新しいリージョンを追加できます。削除する表に子表がある場合は、まず子表を削除する必要があります。たとえば、次の表があるとします。
-
myTable
-
myTable.childTable1
-
myTable.childTable2
まずmyTable.childTable1
およびmyTable.childTable2
を削除する必要があり、その後で親のmyTable
を削除できます。親を削除しようとすると、文はエラーを返します。