CREATE PROCEDURE `mydb`.`static_all` ()
BEGIN
declare not_found int default 0;
declare tem int;
declare f_datatablename varchar(100);
declare cur_0 cursor for select DATATABLENAME from db_dataset;
declare continue handler for not found set not_found=1;
open cur_0;
fetch cur_0 into f_datatablename;
set @a=f_datatablename;
set @stmt:=concat("select count(*) as tem from information_schema.TABLES WHERE TABLE_NAME='",@a,"'");
prepare stmt from @stmt;
execute stmt;
drop prepare stmt;
while(not_found=0) and (tem=1) do
set @stmt1:=concat("insert into sys_stadatasave(DATATYPEID,storageID,datanum,productTotalSize) 
select distinct ",@a,",SaveNodeID,count(SaveNodeID),round(sum(FileSize),3) group by storageID from ",@a);
prepare stmt1 from @stmt1;
execute stmt1;
drop prepare stmt1;
fetch cur_0 into f_datatablename;
end while;
close cur_0;
END
最后,sys_stadatasave并没有更新,哪儿出错了呢,dbdataset里存的是表的名字,在数据库中如果查到该表,就把它的统计信息取出来放到sys_stadatasave中
最后出来的结果只有一行,dem 1 MySQL 数据库 存储过程 游标