1. 程式人生 > >MySQL中利用RENAME TABLE快速高效重命名庫(schema)

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

平時 rename ren 使用方法 database tables create sele pre

目前的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;#最後再刪除舊庫

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

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