Renomear para MAIÚSCULO todos os nomes de tabelas do MYSQL
Prezados leitores.
Algumas vezes me deparo com a situação de migração de bases que estão em windows para linux.
No nosso querido sistema linux, o MYSQL é case sensitive. Em algumas situações é só renomear todas as tabelas. porém quando são muitas tabelas, fica difícil.
Adaptei um exemplo de função do mysql para estas situações.
apenas troque o nome do seu banco de dados em banco_testes, execute o script e execute a função criada.
Abraços.
DELIMITER $$
USE `banco_testes`$$
DROP PROCEDURE IF EXISTS `test`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `test`()
BEGIN
DECLARE done INT DEFAULT FALSE;
DECLARE _table_name TEXT;
DECLARE _table_name_c TEXT;
DECLARE curs1 CURSOR FOR select table_name from information_schema.`TABLES` where table_schema = 'banco_testes';
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
OPEN curs1;
read_loop: LOOP
FETCH curs1 INTO _table_name;
IF done THEN
LEAVE read_loop;
END IF;
SET @tableName = _table_name;
SET @s = CONCAT('RENAME TABLE ', _table_name, ' TO ', UPPER(_table_name));
PREPARE stmt1 FROM @s;
EXECUTE stmt1;
DEALLOCATE PREPARE stmt1;
END LOOP;
CLOSE curs1;
END$$
Atualização:
Para rodar esta procedure utilize o seguinte comando SQL:
CALL test();
Assinar:
Postar comentários (Atom)
Nenhum comentário:
Postar um comentário