DROP TABLE

適用対象:「はい」のチェック マーク Databricks SQL 「はい」のチェック マーク Databricks Runtime

テーブルが EXTERNAL テーブルでない場合は、テーブルを削除し、テーブルに関連付けられているディレクトリをファイル システムから削除します。 テーブルが存在しない場合は、例外がスローされます。 テーブルをドロップするには、テーブルに対する MANAGE 権限を持っているか、その所有者であるか、テーブルが存在するスキーマ、カタログ、またはメタストアの所有者である必要があります。

外部テーブルの場合、関連するメタデータ情報のみがメタストア スキーマから削除されます。

テーブルを参照する外部キー制約も削除されます。

テーブルがキャッシュされている場合、コマンドはテーブルとそのすべての依存オブジェクトのキャッシュを解除します。

注記

Unity Catalog では、削除されたマネージド テーブルを回復するための UNDROP TABLE コマンドがサポートされています。 既定では、テーブルは削除されてから 7 日間回復可能です。 復旧期間が終了すると、基になるデータ ファイルは 48 時間以内にクラウド テナントから完全に削除されます。 復旧期間は、カタログ レベルまたはスキーマ レベルで構成できます。 Unity カタログ でのマネージド テーブルの削除オブジェクト ストレージのライフサイクルに関する説明を参照してください。

構文

DROP TABLE [ IF EXISTS ] table_name [ FORCE ]
DROP {TEMP | TEMPORARY} TABLE table_name [IF EXISTS]

パラメーター

  • TEMP または TEMPORARY

    適用対象: チェック マークあり Databricks SQL

    指定した場合は、一時テーブルを削除します。 この名前の一時テーブルがセッションに存在しない場合、コマンドは エラー条件エラー TABLE_OR_VIEW_NOT_FOUND 発生します。

    指定しない場合、コマンドは永続的なテーブルのみを削除し、同じ修飾されていない名前の一時テーブルがセッションに存在する場合にエラーを発生させます。 一時テーブルが同じ名前を共有している場合に永続テーブルを削除するには、修飾名を使用します。

  • 存在する場合

    指定した場合、テーブルが存在しないときに TABLE_OR_VIEW_NOT_FOUND エラーがスローされません。

  • table_name

    削除されるテーブルの名前。 名前には、 時仕様またはオプション指定を含めてはなりません。 テーブルが見つからない場合、Azure Databricks で TABLE_OR_VIEW_NOT_FOUND エラーが発生します。 見つかったリレーションシップがテーブルでない場合、Azure Databricks は WRONG_COMMAND_FOR_OBJECT_TYPE エラーを発生させます。

  • フォース

    指定した場合、依存する浅いクローンがある場合でも、テーブルを削除できます。 これは、Unity カタログのマネージド テーブルにのみ適用されます。 浅い複製については、「ベース テーブルを削除する」を参照してください。

例の一覧

-- Assumes a table named `employeetable` exists.
> DROP TABLE employeetable;

-- Assumes a table named `employeetable` exists in the `userdb` schema
> DROP TABLE userdb.employeetable;

-- Assumes a table named `employeetable` does not exist.
-- Throws TABLE_OR_VIEW_NOT_FOUND
> DROP TABLE employeetable;
  Error: TABLE_OR_VIEW_NOT_FOUND

-- Assumes a table named `employeetable` does not exist. Try with IF EXISTS
-- this time it will not throw exception
> DROP TABLE IF EXISTS employeetable;

-- Assumes a table named `employeetable` exists and has a shallow clone.
-- Throws CANNOT_DROP_BASE_TABLE_REFERENCED_BY_SHALLOW_CLONE
> DROP TABLE employeetable;
  Error: CANNOT_DROP_BASE_TABLE_REFERENCED_BY_SHALLOW_CLONE

-- Assumes a table named `employeetable` exists and has a shallow clone.
-- Drops base table, but shallow clones referencing this base table will no longer work
> DROP TABLE employeetable FORCE;

-- Creates and drops a temporary table
> CREATE TEMPORARY TABLE scratchpad(txt STRING);
> DROP TEMPORARY TABLE scratchpad;