最近很多朋友喜欢上设计,但是大家却不知道如何去做,别担心有给你解答,史上最全最棒的详细解说让你一看就懂。
--删除
drop procedure if exists up_common_select
--创建
CREATEPROCEDURE `up_common_select`
(
in t_name varchar(50)
)
begin
declare v_sql varchar(500);
set v_sql= concat('select * from ',t_name);
select v_sql;
--注意:prepare(预处理)execute stmt using @var,[email protected],declare和传入的变量不行!!!
set @v_sql=v_sql;
prepare stmt from @v_sql;
EXECUTE stmt ;
deallocate prepare stmt;
end;
--调用
call up_common_select('admin_authority');
注意事项
1mysql5.0.13之后支持在存储过程中调用prepare
2prepare stmt from 'select * from ?';(错)
mysql5.0.24,prepare尚不支持 表名做变量!
解决方案:用 contat()函数,组合字符串
3execute stmt [using @var,@var2]
[email protected],传入的参数变量,declare变量不行
prepare stmt; 显式的释放prepare,如果不释放,mysql会释放,!