Vous pouvez créer votre propre procédure stockée pour renommer vos tables, avec que vous n'avez pas besoin d'ouvrir un tout éditeur externe se fera sur le serveur:
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 ;
Utilisation:
CALL rename_tables('test', 'jos_', '');
Mise à jour: Ce fut ma première procédure stockée MySQL et je suis tombé sur les six années vieux bug #5967 qui était assez ennuyeux, vos noms de variables doivent être différents des noms de champs, parce que si elles ne sont pas vous » Vous obtiendrez NULL
valeurs dans vos variables. Donc, soyez conscient de cela si vous décidez d'écrire une procédure stockée MySQL.
J'espère qu'il n'y a pas de dépendances internes ici! – Strawberry