本ページでは、テーブルを削除する方法について説明します。

構文

DROP TABLE name [CASCADE | RESTRICT | CASCADE CONSTRAINTS]

パラメーター

パラメーター 説明 
name 削除するテーブルの名前。 名前はスキーマで修飾できます。

説明

DROP TABLE 文は、データベースからテーブルを削除します。 テーブルを破棄できるのは、テーブルの所有者のみです。

DROP TABLE 文は、対象のテーブルに存在するインデックス、ルール、トリガー、制約をすべて削除します。

RESTRICT キーワードを含めると、依存するオブジェクトがある場合はサーバーにテーブルの削除を拒否するように指定できます。 これがデフォルトの動作です。 テーブルに依存するオブジェクトがある場合、DROP TABLE 文はエラーを表示します。

テーブルに依存するオブジェクトを削除するには、CASCADE 句を含めます。

Oracle と互換性のある POLARDB では、CASCADE CONSTRAINTS 句を含めると、指定したテーブル上の他のオブジェクトタイプを除く依存制約を削除するよう指定できます。

次の SQL 文は、依存関係のない emp という名前のテーブルを削除します。

DROP TABLE emp;

DROP TABLE 文の実行結果は、テーブルに依存関係があるかどうかによって異なります。 削除時の動作を指定することで、結果を制御できます。 たとえば、orders と items という名前の 2 つのテーブルを作成し、items テーブルは orders テーブルに依存するとします。

CREATE TABLE orders
  (order_id int PRIMARY KEY, order_date date, ...) ;
CREATE TABLE items
  (order_id REFERENCES orders, quantity int, ...) ;            
Oracle と互換性のある POLARDB では、指定した削除時の動作に応じて、orders テーブルを削除するときに次のいずれかのアクションを実行します。
  • DROP TABLE orders RESTRICT を指定すると、エラーが報告されます。
  • DROP TABLE orders CASCADE を指定すると、orders および items テーブルが削除されます。
  • DROP TABLE orders CASCADE CONSTRAINTS を指定すると、orders テーブルは削除され、items テーブルに関しては外部キー指定は削除されるものの、テーブル自体は削除されません。