Mysql 数据库表名批量改为大写

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('数据库名');

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。 O...
    我想起个好名字阅读 5,495评论 0 9
  • 无论是运维、开发、测试,还是架构师,数据库技术是一个必备加薪神器,那么,一直说学习数据库、学MySQL,到底是要学...
    Java黎先生阅读 455评论 0 1
  • 转 # https://www.cnblogs.com/easypass/archive/2010/12/ 08/...
    吕品㗊阅读 9,880评论 0 44
  • Stream groupings Shuffle grouping: Tuples 随机分配到bolt中,可以保证...
    ic_bbc阅读 401评论 0 0
  • 看到一篇以前我写的半途而废的童话,它来源于我的一个浪漫的梦。一个胆小的鬼,附在娃娃上给一个哭泣的小女孩拥抱,最后让...
    老坛酸辣面阅读 319评论 0 0