DROP [UNDO] TABLESPACE tablespace_name
此陳述式會捨棄先前使用 CREATE TABLESPACE
建立的表格空間。 NDB
和 InnoDB
儲存引擎均支援此陳述式。
必須指定 UNDO
關鍵字才能捨棄復原表格空間。只能捨棄使用 CREATE UNDO TABLESPACE
語法建立的復原表格空間。復原表格空間在被捨棄前必須處於 empty
狀態。如需更多資訊,請參閱 第 17.6.3.4 節,「復原表格空間」。
是 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
與系統表格空間類似,截斷或捨棄儲存在一般表格空間中的表格會在一般表格空間的 .ibd 資料檔中建立內部可用空間,該空間只能用於新的
InnoDB
資料。與每個表格檔案表格空間不同,不會將空間釋放回作業系統。
InnoDB 範例
此範例示範如何捨棄 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;
此範例示範如何捨棄復原表格空間。復原表格空間在被捨棄前必須處於 empty
狀態。如需更多資訊,請參閱 第 17.6.3.4 節,「復原表格空間」。
mysql> DROP UNDO TABLESPACE undo_003;
NDB 範例
此範例顯示在建立表格空間後,如何捨棄具有名為 mydata-1.dat
的資料檔的 NDB
表格空間 myts
,並假設存在一個名為 mylg
的日誌檔群組(請參閱 第 15.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';
mysql> DROP TABLESPACE myts;