博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySQL中将数据库表名修改成大写的存储过程
阅读量:5263 次
发布时间:2019-06-14

本文共 1146 字,大约阅读时间需要 3 分钟。

原文:

MySQL中将数据库表名修改成大写的存储过程

创建存储过程的代码:

DROP PROCEDURE IF EXISTS uppercaseTablenames;DELIMITER $CREATE PROCEDURE uppercaseTablenames(IN dbname VARCHAR(200))BEGINDECLARE 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;REPEATFETCH cur INTO oldname;SET @newname = UPPER(oldname);SET @isNotSame = @newname <> BINARY oldname;IF NOT done && @isNotSame THENSET @SQL = CONCAT('rename table `',oldname,'` to `', LOWER(@newname), '_tmp` ');PREPARE tmpstmt FROM @SQL;EXECUTE tmpstmt;SET @SQL = CONCAT('rename table `',LOWER(@newname),'_tmp` to `',@newname, '`');PREPARE tmpstmt FROM @SQL;EXECUTE tmpstmt;DEALLOCATE PREPARE tmpstmt;END IF;UNTIL done END REPEAT;CLOSE cur;END$DELIMITER ;

使用方法,以数据库名作为参数调用存储过程即可:
mysql> call uppercaseTablenames('库名');

注意,在 Windows 系统下需要在 MySQL 的 my.ini 配置文件里的 [mysqld] 下加上“lower_case_table_names=2”,否则表名转大写无效。如下:     

[mysqld]
...
lower_case_table_names=2
[client]
...

参考:

posted on
2019-03-22 10:39 阅读(
...) 评论(
...)

转载于:https://www.cnblogs.com/lonelyxmas/p/10576748.html

你可能感兴趣的文章
电子眼抓拍大解密
查看>>
tomcat7的数据库连接池tomcatjdbc的25个优势
查看>>
Html 小插件5 百度搜索代码2
查看>>
java.io.IOException: read failed, socket might closed or timeout, read ret: -1
查看>>
java 常用命令
查看>>
卷积中的参数
查看>>
51nod1076 (边双连通)
查看>>
ViewPager的onPageChangeListener里面的一些方法参数:
查看>>
Jenkins关闭、重启,Jenkins服务的启动、停止方法。
查看>>
Linux pipe函数
查看>>
java equals 小记
查看>>
2019春 软件工程实践 助教总结
查看>>
Zerver是一个C#开发的Nginx+PHP+Mysql+memcached+redis绿色集成开发环境
查看>>
多线程实现资源共享的问题学习与总结
查看>>
java实现哈弗曼树
查看>>
程序的静态链接,动态链接和装载 (补充)
查看>>
关于本博客说明
查看>>
线程androidAndroid ConditionVariable的用法
查看>>
转载:ASP.NET Core 在 JSON 文件中配置依赖注入
查看>>
代码变量、函数命名神奇网站
查看>>