在 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;