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;#最后再删除旧库

不过需要注意的是该方式需要有一定的权限

相关推荐