mysql 存储过程中 使用变量做表明[学习记录]

来源:互联网 发布:辐射4艾达王捏脸数据 编辑:程序博客网 时间:2024/05/16 09:15
create procedure stats()begindeclare k char(32);declare tbl char(1);declare done int default 0;declare cur cursor for select `key`,`table` from `index`;declare continue handler for sqlstate '02000' set done=1;open cur;repeatfetch cur into k,tbl;set @total = 0;set @inqueue = 0;set @sql = concat('select count(dk) into @total from `',tbl);set @sql = concat(@sql,'` where `k`=\'');set @sql = concat(@sql,k);set @sql = concat(@sql,'\'');prepare st from @sql;execute st;set @sql = concat('select count(dk) into @inqueue from `',tbl);set @sql = concat(@sql,'` where `k`=\'');set @sql = concat(@sql,k);set @sql = concat(@sql,'\' and f=0');prepare st from @sql;execute st;select k as `key`,@total as total,@inqueue as inqueue;until done end repeat;close cur;end