Вы можете создать собственную хранимую процедуру для переименования ваших таблиц, при этом вам не нужно открывать внешний редактор, все будет сделано на сервере:
delimiter //
CREATE PROCEDURE rename_tables( IN db CHAR(255), IN srch CHAR(255), IN rplc 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;
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 = REPLACE(from_table, srch, rplc);
IF from_table != @to_table THEN
SET @rename_query = CONCAT('RENAME TABLE ', db, '.', from_table, ' TO ', @to_table, ';');
PREPARE stmt FROM @rename_query;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END IF;
END LOOP;
CLOSE cur1;
END//
delimiter ;
Использование:
CALL rename_tables('test', 'jos_', '');
Обновление: Это была моя первая хранимая процедура MySQL, и я столкнулся с 6-летней старой ошибкой # 5967 , которая довольно раздражала, имена ваших переменных должны отличаться от имен полей, потому что в противном случае вы получите NULL
значения в ваших переменных.
Так что помните об этом, если вы решите написать хранимую процедуру MySQL.