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を削除できます。親を削除しようとすると、文はエラーを返します。