首頁 >資料庫 >mysql教程 >如何在不轉儲和重新導入的情況下重命名帶有 InnoDB 表的 MySQL 資料庫?

如何在不轉儲和重新導入的情況下重命名帶有 InnoDB 表的 MySQL 資料庫?

Barbara Streisand
Barbara Streisand原創
2024-12-14 11:52:10885瀏覽

How to Rename a MySQL Database with InnoDB Tables Without Dumping and Re-importing?

重新命名InnoDB 表的MySQL 資料庫

作為轉儲和重新導入大量資料庫的替代方法,您可能想要直接重命名它們。雖然不建議使用 RENAME 語法,但存在更可靠的 InnoDB 表方法。

步驟:

  1. 使用所需名稱建立一個空的新資料庫。
  2. 對於原始資料庫中的每個表,執行以下操作命令:
RENAME TABLE old_db.table TO new_db.table;

編寫過程腳本:

為了方便起見,使用shell腳本自動重新命名流程:

mysql -u username -ppassword old_db -sNe 'show tables' | while read table; \ 
    do mysql -u username -ppassword -sNe "rename table old_db.$table to new_db.$table"; done

或:

for table in `mysql -u root -ppassword -s -N -e "use old_db;show tables from old_db;"`; do mysql -u root -ppassword -s -N -e "use old_db;rename table old_db.$table to new_db.$table;"; done;

備註:

  • 如果您的資料庫不是密碼,請刪除密碼部分- protected。
  • 觸發器將阻止使用此方法移動表。考慮克隆。
  • 之後可以使用 mysqldump -R old_db | 複製預存程序。 mysql new_db.

以上是如何在不轉儲和重新導入的情況下重命名帶有 InnoDB 表的 MySQL 資料庫?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn