mysql运行查询1后的结果作为表名在查询2中执行?

DELIMITER $$

USE `table2021`$$

DROP PROCEDURE IF EXISTS `curdemo`$$

CREATE DEFINER=`root`@`%` PROCEDURE `curdemo`()
begin
    declare var_table varchar(32);
    set var_table = (SELECT 表名 FROM 不分表 LIMIT 1;);    --查询1
    select * from var_table;   --查询2

end$$

DELIMITER ;

 

运行后提示:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ';);
    select * from var_table;
end' at line 4

 

改成这样试试看呢: 

DELIMITER $$

USE `table2021`$$

DROP PROCEDURE IF EXISTS `curdemo`$$

CREATE DEFINER=`root`@`%` PROCEDURE `curdemo`()
begin
    declare var_table varchar(32);
    set var_table = (SELECT 表名 FROM 不分表 LIMIT 1);    --查询1
    select * from var_table;   --查询2

end$$

DELIMITER ;