文件首頁
MySQL 8.4 參考手冊
相關文件 下載本手冊
PDF (美國信紙尺寸) - 39.9Mb
PDF (A4) - 40.0Mb
Man Pages (TGZ) - 258.5Kb
Man Pages (Zip) - 365.5Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 參考手冊  /  ...  /  DROP TABLESPACE 陳述式

15.1.33 DROP TABLESPACE 陳述式

DROP [UNDO] TABLESPACE tablespace_name

此陳述式會捨棄先前使用 CREATE TABLESPACE 建立的表格空間。 NDBInnoDB 儲存引擎均支援此陳述式。

必須指定 UNDO 關鍵字才能捨棄復原表格空間。只能捨棄使用 CREATE UNDO TABLESPACE 語法建立的復原表格空間。復原表格空間在被捨棄前必須處於 empty 狀態。如需更多資訊,請參閱 第 17.6.3.4 節,「復原表格空間」

tablespace_name 是 MySQL 中區分大小寫的識別碼。

對於 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;