表領域

[Oracle] 表領域を削除するSQL(DROP TABLESPACE)

表領域の削除

空の表領域を削除する(基本)

まずは、表領域を削除するための基本的な形からご紹介します。

DROP TABLESPACE 表領域名;

それではサンプルを見てみましょう。

上記を実行することで、表領域TBLSPが削除されます。

ただし、すでにデータが入っている表領域は次にご紹介するオプションを指定する必要があります。

 

データの入った表領域を削除する

データファイルにすでにデータが存在する場合は、INCLUDING CONTENTSオプションを指定します。

DROP TABLESPACE 表領域名 INCLUDING CONTENTS;

それではサンプルを見てみましょう。

上記を実行することで、すでにデータが入っていても表領域TBLSPを削除できます。

 

データファイルごと表領域を削除する

オプション指定なしで表領域を削除した場合、データファイル自体はそのまま残り削除されません。
データファイルも併せて削除するには、AND DATAFILESを指定します。

DROP TABLESPACE 表領域名 INCLUDING CONTENTS AND DATAFILES;

それではサンプルを見てみましょう。

上記を実行することで、表領域TBLSPの削除とともに、紐づくデータファイルも削除されます。

 

制約を含む表領域を削除する

CASCADE CONSTRAINTSを指定することで、削除対象の表領域に含まれる表の主キー等を参照する参照整合性制約を削除できます。

なお、制約がある場合はこの指定をしないと表領域を削除することができないため注意が必要です。

DROP TABLESPACE 表領域名 INCLUDING CONTENTS CASCADE CONSTRAINTS;

それではサンプルを見てみましょう。

上記を実行することで、表領域TBLSPの削除とともに、制約も削除されます。

また、データファイルを削除するAND DATAFILESと併せて指定する場合、以下のように記述します。

 
 
以上が、表領域の削除「DROP TABLESPACE」の使い方です。
ぜひ参考にしてみてください。