(转)mysql数据库表名批量修改大小写
2024-08-27 18:24:10
由于不用服务器对mysql的表名的大小写敏感要求不一致,经常在出现线上的数据库down到了本地不能运行的情况,贴出一段代码用来批量修改数据库表名大小写。
DELIMITER // DROP PROCEDURE IF EXISTS uppercase // CREATE PROCEDURE uppercase(IN dbname VARCHAR(200)) BEGIN DECLARE done INT DEFAULT 0; DECLARE oldname VARCHAR(200); DECLARE cur CURSOR FOR SELECT table_name FROM information_schema.TABLES WHERE table_schema = dbname; DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1; OPEN cur; REPEAT FETCH cur INTO oldname; SET @newname = UPPER(oldname); #IF newname equals to oldname, do nothing;
#select 'a' <> 'A'; -> 0
#select 'a' <> BINARY 'A'; -> 1
SET @isNotSame = @newname <> BINARY oldname; IF NOT done && @isNotSame THEN SET @SQL = CONCAT('rename table ',oldname,' to ',@newname); PREPARE tmpstmt FROM @SQL; EXECUTE tmpstmt; DEALLOCATE PREPARE tmpstmt; END IF; UNTIL done END REPEAT; CLOSE cur; END // DELIMITER ;
#调用存储过程
#call uppercase('TEST');
#TEST为你想要修改的数据库的名称
最新文章
- setTimeout 的黑魔法
- AWVS漏洞测试-01节-AWVS的主要作用
- oracle 中的存储过程
- Hibernate逍遥游记-第13章 映射实体关联关系-002用主键映射一对一(<;one-to-one constrained=";true";>;、<;generator class=";foreign";>;)
- (原)torch使用caffe时,提示CUDNN_STATUS_EXECUTION_FAILED
- Delphi中多线程下使用使用 UniDAC+MSSQL 需要注意的问题(连接前调用CoInitialize)
- Windows Message Queue(优先队列)
- c++ 简单的词法分析
- Firemonkey使用iOS的第三方静态库(Link Binary With Libraries)
- Linux IPC实践(3) --具名FIFO
- react 16 ssr的重构踩坑
- JAVA:调用cmd指令(支持多次手工输入)
- STM32点亮闪烁LED灯
- Ubuntu 18.04 Server 设置静态IP
- .NET:System.Security.Cryptography.CryptographicException 的解决办法
- java新手的session初体验
- *2.3.4_封装成agent
- svm常用核函数介绍
- C#导入PFX和Cer证书的工具类
- Oracle 表连接方式
热门文章
- 手动搭建I/O网络通信框架2:Socket和ServerSocket入门实战,实现单聊
- 提示要安装Python-OpenSSL
- Python模块---制作属于自己的有声小说
- Python+Tornado开发微信公众号
- Android Google Play app signing 最终完美解决方式
- [译]使用开发工具来调试 Beta 版 WebView
- 提高万恶的KPI,切忌要避开这六个低效的编程习惯
- codeforces Equalizing by Division (easy version)
- Springboot:整合Mybaits和Druid【监控】(十一)
- kubernetes的Statefulset介绍