美文网首页
Mysql 数据库表名批量改为大写

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

作者: 掘金_蒋老湿 | 来源:发表于2019-05-23 16:52 被阅读0次
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('数据库名');

相关文章

网友评论

      本文标题:Mysql 数据库表名批量改为大写

      本文链接:https://www.haomeiwen.com/subject/gcybzqtx.html