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

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

Barbara Streisand
發布: 2024-12-14 11:52:10
原創
881 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板