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
通过上述方法可以传递表名,列名等,我们就可以写出比较功能强大的存储过程了