使用存储过程批量修改MySQL表名
时间: 2024-05-24 15:06:56 浏览: 147
使用存储过程可以批量修改MySQL表名。下面是一个示例存储过程的代码[^1]:
```sql
DELIMITER //
CREATE PROCEDURE rename_tables()
BEGIN
DECLARE done INT DEFAULT FALSE;
DECLARE oldname VARCHAR(255);
DECLARE newname VARCHAR(255);
DECLARE cur CURSOR FOR SELECT table_name FROM information_schema.TABLES WHERE table_schema = 'your_database_name';
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
OPEN cur;
read_loop: LOOP
FETCH cur INTO oldname;
IF done THEN
LEAVE read_loop;
END IF;
SET newname = LOWER(oldname); -- 修改为大写可以使用UPPER函数
SET @SQL = CONCAT('RENAME TABLE ', oldname, ' TO ', newname);
PREPARE stmt FROM @SQL;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END LOOP;
CLOSE cur;
END //
DELIMITER ;
```
你可以将上述代码保存为一个.sql文件,然后在MySQL客户端中执行该文件,或者直接在MySQL客户端中逐行执行上述代码。
请注意,你需要将`your_database_name`替换为你的数据库名称,并根据需要修改表名的大小写转换逻辑。
阅读全文