あなたは、あなたのテーブルの名前を変更するために、独自のストアドプロシージャを作成することができ、必要のないものに
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 ;
使用法:
外部エディタのすべてを開くには、サーバー上で行われます更新
:「これが私の最初のMySQLのストアドプロシージャだったと私は、彼らはあなたがいない場合ので、非常に迷惑だったが古いbug #5967、あなたの変数名は、フィールド名と異なる必要があります6年に走りましたあなたの変数の値はNULL
になります。
したがって、MySQLストアドプロシージャを作成する場合は注意が必要です。
をDONE! – Strawberry