MYSQL将表名称批改成大写的存储过程
MYSQL将表名称修改成大写的存储过程
1. 条件:
1.1 Mysql设置对大小写敏感
2. 执行下述存储过程:
1 #call uppercase('库名') 2 DROP PROCEDURE IF EXISTS uppercase; 3 CREATE PROCEDURE uppercase(IN dbname VARCHAR(200)) 4 BEGIN 5 6 DECLARE done INT DEFAULT 0; 7 8 DECLARE oldname VARCHAR(200); 9 10 DECLARE cur CURSOR FOR SELECT table_name FROM information_schema.TABLES WHERE table_schema = dbname; 11 12 DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1; 13 14 OPEN cur; 15 16 REPEAT 17 18 FETCH cur INTO oldname; 19 20 SET @newname = UPPER(oldname); 21 22 SET @isNotSame = @newname <> BINARY oldname; 23 24 IF NOT done && @isNotSame THEN 25 26 SET @SQL = CONCAT('rename table `',oldname,'` to `', LOWER(@newname), '_tmp` '); 27 28 PREPARE tmpstmt FROM @SQL; 29 30 EXECUTE tmpstmt; 31 32 33 SET @SQL = CONCAT('rename table `',LOWER(@newname),'_tmp` to `',@newname, '`'); 34 35 PREPARE tmpstmt FROM @SQL; 36 37 EXECUTE tmpstmt; 38 39 DEALLOCATE PREPARE tmpstmt; 40 41 END IF; 42 43 UNTIL done END REPEAT; 44 45 CLOSE cur; 46 47 END
3. 执行一下语句
call uppercase('库名');