MySQL 8.0 リファレンスマニュアル MySQL NDB Cluster 8.0 を含む
このページは機械翻訳したものです。
DROP [UNDO] TABLESPACEtablespace_name[ENGINE [=]engine_name]
このステートメントは、CREATE TABLESPACE を使用して以前に作成されたテーブルスペースを削除します。 NDB および InnoDB ストレージエンジンでサポートされています。
undo テーブルスペースを削除するには、MySQL 8.0.14 で導入された UNDO キーワードを指定する必要があります。 CREATE UNDO TABLESPACE 構文を使用して作成された undo テーブルスペースのみを削除できます。 undo テーブルスペースは、削除する前に empty 状態である必要があります。 詳細は、セクション15.6.3.4「undo テーブルスペース」を参照してください。
ENGINE は、テーブルスペースを使用するストレージエンジンを設定します。ここで、engine_name はストレージエンジンの名前です。 現在、InnoDB および NDB の値がサポートされています。 設定しない場合、default_storage_engine の値が使用されます。 テーブルスペースの作成に使用されたストレージエンジンと同じでない場合、DROP TABLESPACE ステートメントは失敗します。
は、MySQL では大/小文字が区別される識別子です。
tablespace_name
InnoDB 一般テーブルスペースの場合、DROP TABLESPACE 操作の前にすべてのテーブルをテーブルスペースから削除する必要があります。 テーブルスペースが空でない場合、DROP TABLESPACE はエラーを返します。
削除する NDB テーブルスペースにデータファイルを含めることはできません。つまり、NDB テーブルスペースを削除する前に、まず ALTER TABLESPACE ... DROP DATAFILE を使用して各データファイルを削除する必要があります。
一般的な InnoDB テーブルスペースは、テーブルスペースの最後のテーブルが削除されても自動的には削除されません。 テーブルスペースは、DROP TABLESPACE を使用して明示的に削除する必要があります。
tablespace_name
DROP DATABASE 操作では、一般的なテーブルスペースに属するテーブルを削除できますが、そのテーブルスペースに属するすべてのテーブルを削除しても、テーブルスペースは削除できません。 テーブルスペースは、DROP TABLESPACE を使用して明示的に削除する必要があります。
tablespace_name
システムテーブルスペースと同様に、一般テーブルスペースに格納されているテーブルの切捨てまたは削除によって、新しい InnoDB データにのみ使用できる空き領域が一般テーブルスペース .ibd data file に内部的に作成されます。 file-per-table テーブルスペース用であるため、領域はオペレーティングシステムに解放されません。
この例では、InnoDB の一般テーブルスペースを削除する方法を示します。 一般的なテーブルスペース ts1 は、単一のテーブルで作成されます。 テーブルスペースを削除する前に、テーブルを削除する必要があります。
mysql>CREATE TABLESPACE `ts1` ADD DATAFILE 'ts1.ibd' Engine=InnoDB;mysql>CREATE TABLE t1 (c1 INT PRIMARY KEY) TABLESPACE ts1 Engine=InnoDB;mysql>DROP TABLE t1;mysql>DROP TABLESPACE ts1;
この例では、undo テーブルスペースの削除を示します。 undo テーブルスペースは、削除する前に empty 状態である必要があります。 詳細は、セクション15.6.3.4「undo テーブルスペース」を参照してください。
mysql> DROP UNDO TABLESPACE undo_003;
この例では、最初にテーブルスペースを作成した後に mydata-1.dat という名前のデータファイルを持つ NDB テーブルスペース myts を削除する方法を示し、mylg という名前のログファイルグループが存在することを前提としています (セクション13.1.16「CREATE LOGFILE GROUP ステートメント」 を参照)。
mysql>CREATE TABLESPACE myts->ADD DATAFILE 'mydata-1.dat'->USE LOGFILE GROUP mylg->ENGINE=NDB;
削除する前に、次に示すように、ALTER TABLESPACE を使用してテーブルスペースからすべてのデータファイルを削除する必要があります:
mysql>ALTER TABLESPACE myts->DROP DATAFILE 'mydata-1.dat'->ENGINE=NDB;mysql>DROP TABLESPACE myts;