適用対象:
Databricks SQL
Databricks Runtime
テーブルが EXTERNAL テーブルでない場合は、テーブルを削除し、テーブルに関連付けられているディレクトリをファイル システムから削除します。 テーブルが存在しない場合は、例外がスローされます。
テーブルをドロップするには、テーブルに対する MANAGE 権限を持っているか、その所有者であるか、テーブルが存在するスキーマ、カタログ、またはメタストアの所有者である必要があります。
外部テーブルの場合、関連するメタデータ情報のみがメタストア スキーマから削除されます。
テーブルを参照する外部キー制約も削除されます。
テーブルがキャッシュされている場合、コマンドはテーブルとそのすべての依存オブジェクトのキャッシュを解除します。
注記
テーブルは 7 ~ 30 日以内に削除されます。 Unity Catalog では、削除されたマネージド テーブルを 7 日間復旧する UNDROP TABLE コマンドがサポートされています。 7 日後、基になるデータは、通常のテーブル メンテナンス操作中にクラウド テナントから削除するようにマークされます。
構文
DROP TABLE [ IF EXISTS ] table_name [ FORCE ]
パラメーター
存在する場合
指定した場合、テーブルが存在しないときに TABLE_OR_VIEW_NOT_FOUND エラーがスローされません。
-
削除されるテーブルの名前。 名前には、 時仕様またはオプション指定を含めてはなりません。 テーブルが見つからない場合、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;