快速修改MySQL数据库名称

原理:先创建新的数据库,然后利用information_schema数据库表结构信息,用 RENAME命令 将旧的表迁移到新数据库里面,最后删除旧的数据库名称即可。

步骤如下:

#查询目标数据库下面的所有表
SELECT table_name,TABLE_SCHEMA FROM information_schema.TABLES WHERE TABLE_SCHEMA='旧数据库名称';

#创建新数据库
CREATE DATABASE IF NOT EXISTS 新数据库名称 DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_unicode_ci;
#将每个旧表迁移到新的数据库里面
RENAME TABLE 旧数据库名称.表1 TO 新数据库名称.表1,旧数据库名称.表2 TO 新数据库名称.表2,……;

#查询新数据库下面的所有表是否迁移成功
SELECT table_name,TABLE_SCHEMA FROM information_schema.TABLES WHERE TABLE_SCHEMA='新数据库名称';

#最后删除旧数据库
DROP DATABASE 旧数据库名称;

注意,RENAME这个语法在mysql 5.1.7中被添加进baidu,到了zhi5.1.23又去掉了。

其他相关命令:

#查询目标数据库里的视图
SELECT * FROM information_schema.VIEWS WHERE TABLE_SCHEMA='数据库名称';

#查询目标数据库名
SELECT * FROM information_schema.SCHEMATA WHERE SCHEMA_NAME NOT IN('information_schema','mysql','performance_schema','sys');
#查询目标数据库下面的所有表
SELECT table_name,TABLE_SCHEMA FROM information_schema.TABLES WHERE TABLE_SCHEMA='数据库名称';

完。

原文地址:https://www.cnblogs.com/xiongzaiqiren/p/14254666.html