無法清除 資料表內容?Mysql truncate table tablename;

在 MySQL 中清空 tablename(你指定的資料表) 資料表非常簡單,若要保留表格結構並快速刪除所有資料,您只需要執行一行基礎語法。詳細步驟與注意事項如下:

1. 執行指令

在您的 MySQL 查詢編輯器或終端機中,直接執行以下 SQL 語法:

TRUNCATE TABLE roles;

2. 指令特色

  • 速度極快:它透過直接釋放並重新分配資料表的儲存空間來清空資料,效能遠優於逐行刪除。
  • 重置自動遞增 (Auto Increment):如果 roles 表有設定自動遞增的 ID 欄位,執行 TRUNCATE 後,ID 會重新從 1 開始計算。
  • 保留結構:資料會完全消失,但表格本身及欄位定義會完整保留。
  • 無法復原:執行後無法使用 ROLLBACK 復原,請務必確認已備份重要資料。 [1, 2, 3]

3. 常見錯誤與解決方法

如果 roles 表被其他資料表設定了外鍵約束 (Foreign Key),執行時可能會報錯。您可以透過以下語法,先暫時關閉外鍵檢查再進行清空:

SET FOREIGN_KEY_CHECKS = 0;
TRUNCATE TABLE roles;
SET FOREIGN_KEY_CHECKS = 1;

發佈留言