MYSQL存储过程中的动态表名

内容纲要

在mysql的存储过程中有时我们可能会用到表名不是一定的,要根据传过来的参数作为表名来做相应的查询等操作.网上搜了很多这方面的资料,网上的大部分在过程中定义一个变量是可以查询的,但是作为参数传过去却不行了,测试的过程中发现输入数字可以,但如果是字串却不行了.经过测试传参数时要加单引号才可以,如call test(‘sys’),如果不加单引号会报如下的错误:1054 – Unknown column ‘sys’ in ‘field list
以下是过程内容:

CREATE PROCEDURE test(IN t_name varchar(255))
BEGIN
SET @STMT:=CONCAT(“select count(*) from btwb_”,t_name,”;”);PREPARE STMT FROM @STMT;
EXECUTE STMT;
END

发表评论

邮箱地址不会被公开。 必填项已用*标注

5 × 5 =