當需要對整個資料庫進行初始化,清空所有資料表並重置索引時,逐一執行 TRUNCATE TABLE 顯然效率低下。雖然有人建議透過 Dump 重建資料庫,但若習慣使用 TRUNCATE 且資料表數量龐大,批量生成語句會更直觀高效。
利用 MySQL 系統資料庫 information_schema.tables 查詢所有目標資料表名稱,再配合 CONCAT 函數自動拼接出 TRUNCATE TABLE 語句,最後複製執行即可。
your_database_name 替換為實際資料庫名稱:SELECT CONCAT('TRUNCATE TABLE ', table_name, ';')
FROM information_schema.tables
WHERE table_schema = 'your_database_name'
AND table_type != 'VIEW';
TRUNCATE 報錯。操作前請務必完整備份資料庫。TRUNCATE 會立即釋放空間且不可回滾,誤刪核心業務表將造成嚴重後果。建議先在測試環境驗證流程,確認語句清單無誤後再於生產環境執行。