mysql批量转换表名大小写
侧边栏壁纸
博主昵称
yuc

  • 累计撰写 291 篇文章
  • 累计收到 0 条评论

mysql批量转换表名大小写

yuc
yuc
2024-05-07 / 最后修改: 2024-05-07 06:27 / 0 评论 / 5 阅读 / 正在检测是否收录...
转换方法

使用存储过程来批量转换

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('xxx'); 接库名

0

评论

博主关闭了当前页面的评论