Mysql 备份存储过程只复制一个表

Mysql 备份存储过程只复制一个表,mysql,stored-procedures,Mysql,Stored Procedures,我一直在尝试创建一个存储过程,将我的数据库复制到另一个数据库。问题是只有第一个表在复制。你们看到代码中有错误吗 DELIMITER $$ DROP PROCEDURE IF EXISTS fes_backup $$ CREATE PROCEDURE do_backup (IN name_bbdd VARCHAR(20), IN new_name_bbdd VARCHAR(20)) BEGIN DECLARE done INT DE

我一直在尝试创建一个存储过程,将我的数据库复制到另一个数据库。问题是只有第一个表在复制。你们看到代码中有错误吗

     DELIMITER $$

     DROP PROCEDURE IF EXISTS fes_backup  $$

     CREATE PROCEDURE  do_backup (IN name_bbdd VARCHAR(20), IN new_name_bbdd VARCHAR(20))
     BEGIN

        DECLARE done INT DEFAULT 0;
        DECLARE name_table VARCHAR(20);

        DECLARE cur1 CURSOR FOR SELECT table_name FROM information_schema.tables
        WHERE table_schema=name_bbdd AND table_type="base table";

        DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=1;

        OPEN cur1;

        bucle: LOOP

           FETCH cur1 INTO name_table;
           IF done=1 THEN
              LEAVE bucle;
           END IF;

           SELECT CONCAT("Copio ",name_table," a nova base de dades ",new_name_bbdd);

           SET @aux = CONCAT("CREATE TABLE ",name_table," LIKE ", name_bbdd, ".", name_table);
           PREPARE stmt1 FROM @aux;
           EXECUTE stmt1;
           DEALLOCATE PREPARE stmt1;

           SET @aux = CONCAT("INSERT INTO ",name_table," SELECT * FROM ", name_bbdd, ".", name_table);
           PREPARE stmt1 FROM @aux;
           EXECUTE stmt1;
           DEALLOCATE PREPARE stmt1;

        END LOOP bucle;

        CLOSE cur1;

     END$$

     DELIMITER ;

非常感谢

使用局部变量aux而不是用户变量@aux怎么样?似乎没有什么区别,但感谢您的回答!