文件首頁
MySQL 9.0 參考手冊
相關文件 下載本手冊
PDF (美式信紙尺寸) - 40.0Mb
PDF (A4) - 40.1Mb
Man Pages (TGZ) - 258.2Kb
Man Pages (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 9.0 參考手冊  /  ...  /  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;