MySQL中利用RENAME TABLE快速高效重命名庫(schema)

   目前的MySQL中一旦創建的了新的庫(schema)就無法對它進行重命名,所以如果需要對一個庫重命名一般的做法是把目標庫中的數據dump出來後導入想重命名的新庫中,在MySQL的導入中是使用大量的insert,大量使用了DML,如果是大數據量的庫那就很低效,其實在MySQL中可以利用RENAME TABLE這種DDL的方式來移動表數據後來重命名庫,下面就簡單的介紹一下。首先,RENAME TABLE使用方法很簡單:

RENAME TABLE old_table TO new_table;

由此在平時就可以通過查詢MySQL的information_schema.TABLES這張字典表獲得相應目標庫的數據,如在MySQL中有一個test的庫需要重命名爲test2:

CREATE DATABASE test2;#先建好test2

SELECT
    CONCAT('RENAME TABLE test.',TABLE_NAME,' TO test2.',TABLE_NAME,';') DDL
FROM
    information_schema.`TABLES`
WHERE
    TABLE_SCHEMA = 'test';
#生成test轉移至test2的DDL後複製執行
DROP DATABASE test;#最後再刪除舊庫

不過需要注意的是該方式需要有一定的權限

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章