文件首頁
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 TABLE 陳述式

15.1.32 DROP TABLE 陳述式

DROP [TEMPORARY] TABLE [IF EXISTS]
    tbl_name [, tbl_name] ...
    [RESTRICT | CASCADE]

DROP TABLE 會移除一個或多個表格。您必須對每個表格都擁有 DROP 權限。

這個陳述式要小心使用!對於每個表格,它會移除表格定義和所有表格資料。如果表格已分割,陳述式會移除表格定義、所有分割區、儲存在這些分割區中的所有資料,以及與已刪除表格相關聯的所有分割區定義。

刪除表格也會刪除該表格的所有觸發程序。

DROP TABLE 會導致隱含的提交,除非搭配使用 TEMPORARY 關鍵字。請參閱章節 15.3.3,“導致隱含提交的陳述式”

重要

當表格被刪除時,專門針對該表格授予的權限不會自動刪除。必須手動刪除它們。請參閱章節 15.7.1.6,“GRANT 陳述式”

如果引數列表中指定的任何資料表不存在,DROP TABLE 的行為取決於是否給定 IF EXISTS 子句。

  • 若沒有 IF EXISTS,則語句會因錯誤而失敗,指出無法刪除哪些不存在的資料表,且不會進行任何變更。

  • 若有 IF EXISTS,則不會因為不存在的資料表而發生錯誤。該語句會刪除所有確實存在的指定資料表,並為每個不存在的資料表產生一個 NOTE 診斷訊息。這些註解可以使用 SHOW WARNINGS 顯示。請參閱第 15.7.7.41 節,「SHOW WARNINGS Statement」

IF EXISTS 在不尋常的情況下刪除資料表也很有用,例如資料字典中有條目,但儲存引擎沒有管理的資料表。(例如,如果從儲存引擎移除資料表後,但在移除資料字典條目之前發生伺服器異常退出。)

TEMPORARY 關鍵字有以下效果:

  • 該語句僅刪除 TEMPORARY 資料表。

  • 該語句不會導致隱式提交。

  • 不會檢查任何存取權限。TEMPORARY 資料表僅對建立它的會話可見,因此無需檢查。

包含 TEMPORARY 關鍵字是避免意外刪除非 TEMPORARY 資料表的好方法。

RESTRICTCASCADE 關鍵字沒有任何作用。允許它們是為了更容易從其他資料庫系統進行移植。

並非所有 innodb_force_recovery 設定都支援 DROP TABLE。請參閱第 17.20.3 節,「強制 InnoDB 復原」