| 12345678910111213141516171819202122232425262728293031323334353637 |
- DROP PROCEDURE IF EXISTS `UPPERCASE`;
- delimiter ;;
- 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);
- SET @ISNOTSAME = @NEWNAME <> BINARY OLDNAME;
- IF NOT DONE && @ISNOTSAME THEN
- SET @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
- ;;
|