MySQL-大写表名转换为小写表名

若lower_case_table_names=0可能导致表名既有大写又有小写,
想将lower_case_table_names设为1的话 需要先将大写的表和视图名称改为小写的。

1.查找出名称为大写的表和视图

SELECT
    TABLE_SCHEMA,
    TABLE_NAME,
    TABLE_TYPE 
FROM
    information_schema.`TABLES` 
WHERE
    TABLE_SCHEMA NOT IN ( 'information_schema', 'sys', 'mysql', 'performance_schema' ) 
    AND TABLE_NAME REGEXP BINARY '[A-Z]';

2.拼接出大写表名改为小写的SQL

SELECT
	CONCAT( 'rename table ', TABLE_SCHEMA, '.', TABLE_NAME, ' to ', TABLE_SCHEMA, '.', LOWER( TABLE_NAME ), ';' ) 
FROM
	information_schema.`TABLES` 
WHERE
	TABLE_SCHEMA NOT IN ( 'information_schema', 'sys', 'mysql', 'performance_schema' ) 
	AND TABLE_TYPE = 'BASE TABLE' 
	AND TABLE_NAME REGEXP BINARY '[A-Z]';
posted @   Enzo_Ocean  阅读(271)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示