首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 批量刪除/重命名指定前綴表:information_schema 動態 SQL 技巧

     編輯:MySQL 資料庫相關知識

批量刪除表

SELECT CONCAT('DROP TABLE ', table_name, ';')
FROM information_schema.tables
WHERE table_schema = 'your_db' AND table_name LIKE 'dede_%';

執行上述查詢,複製輸出的 DROP TABLE 語句再次執行即可完成批量刪除。

批量重命名表

SELECT CONCAT('ALTER TABLE ', table_name, ' RENAME TO ', 'new_prefix_', SUBSTRING(table_name, 6), ';')
FROM information_schema.tables
WHERE table_schema = 'your_db' AND table_name LIKE 'dede_%';
  • SUBSTRING(table_name, 6) 去除原前綴 dede_(長度 5),拼接新前綴。
  • 輸出示例:ALTER TABLE dede_aaa RENAME TO new_prefix_aaa;

進階:單條 SQL 執行(Prepared Statement)

SET @sql = (
    SELECT GROUP_CONCAT(CONCAT('DROP TABLE ', table_name) SEPARATOR '; ')
    FROM information_schema.tables
    WHERE table_schema = 'your_db' AND table_name LIKE 'dede_%'
);
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

注意 group_concat_max_len 可能截斷,大量表時建議分批或用腳本語言循環執行。

安全提醒

  • 操作前必備份(mysqldump -d 導出結構)。
  • 生產環境建議先在從庫驗證。
  • 確認 table_schema 過濾,防誤刪其他庫表。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved