mysql存储过程传递表名参数示例

最近开发一个项目用到mysql,其中有的过程想用存储过程实现,但是在使用存储过程的时候,发现不能直接外部传递表名,列名等参数,需要用到动态拼接字符串的模式才能实现,放个例子在这里,便于以后开发的时候用到:

addtable为外部传入的in变量,我这里是传递的表名:

BEGIN

#用于存储sql拼接后语句的字符串变量

DECLAREv_sqlvarchar(1024)DEFAULT'0';

#给字符串赋值,使用mysql函数CONCAT把拼接的字符串合成一个字符串,赋值给变量。

SETv_sql=CONCAT('select*from',addtable,'limit0,10');

#PREPARE语句用于预备一个语句

SET@lastdata=v_sql;

PREPARElastdataFROM@lastdata;

#execute函数是用于执行已经预处理过的语句

EXECUTElastdata;

END

通过上述方法可以传递表名,列名等,我们就可以写出比较功能强大的存储过程了