Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- START TRANSACTION;
- DROP PROCEDURE IF EXISTS rename_tables;
- delimiter //
- CREATE PROCEDURE rename_tables(IN db CHAR(255))
- BEGIN
- DECLARE done INT DEFAULT 0;
- DECLARE from_table CHAR(255);
- DECLARE cur1 CURSOR FOR SELECT TABLE_NAME FROM information_schema.TABLES WHERE TABLE_SCHEMA=db AND TABLE_NAME NOT LIKE "$%";
- DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
- OPEN cur1;
- read_loop: LOOP
- IF done THEN
- LEAVE read_loop;
- END IF;
- FETCH cur1 INTO from_table;
- SET @to_table = CONCAT('$', from_table);
- IF from_table != @to_table THEN
- SET @rename_query = CONCAT('RENAME TABLE `', db, '`.`', from_table, '` TO `', @to_table, '`;\n');
- PREPARE stmt FROM @rename_query;
- EXECUTE stmt;
- DEALLOCATE PREPARE stmt;
- END IF;
- END LOOP;
- CLOSE cur1;
- END//
- delimiter ;
- CALL rename_tables('mydb');
- DROP PROCEDURE IF EXISTS rename_tables;
- COMMIT;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement