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;