use*_*338 1 mysql rename multiple-tables
我知道如何奔跑
RENAME TABLE onetable_test TO onetable;
Run Code Online (Sandbox Code Playgroud)
但是有没有一种方法可以用某种模式重命名许多表,并且不需要编写大量代码,例如
RENAME TABLE onetable_test TO onetable;
RENAME TABLE twotable_test TO twitable;
RENAME TABLE threetable_test TO threetable;
...
Run Code Online (Sandbox Code Playgroud)
我正在使用mysql。
谢谢!
使用下面的存储过程::
DELIMITER $$
Run Code Online (Sandbox Code Playgroud)
创造
PROCEDURE `Rename_Tables`()
BEGIN
DECLARE done INT DEFAULT FALSE;
DECLARE tableName VARCHAR(50);
DECLARE newTableName VARCHAR(70);
DECLARE t_query VARCHAR(500);
DECLARE cur1 CURSOR FOR SELECT table_name FROM information_schema.tables WHERE table_name LIKE '%table_test' AND table_schema='test' ;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
OPEN cur1;
read_loop: LOOP
FETCH cur1 INTO tableName;
IF done THEN
LEAVE read_loop;
END IF;
SET newTableName = SUBSTRING(tableName, 1,LOCATE('_',tableName)-1);
SET t_query = CONCAT('RENAME TABLE ', tableName, ' TO ', newTableName);
SET @myQuery = t_query;
PREPARE stmt FROM @myQuery;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END LOOP;
END$$
Run Code Online (Sandbox Code Playgroud)
分隔符;
将 table_schema 替换为您的 table_schema 名称。
| 归档时间: |
|
| 查看次数: |
6075 次 |
| 最近记录: |