码迷,mamicode.com
首页 > 数据库 > 详细

MYSQL 存储 while

时间:2018-05-21 18:04:05      阅读:171      评论:0      收藏:0      [点我收藏+]

标签:proc   create   表数据   div   朋友   count   行存储   format   begin   

---恢复内容开始---

群里一朋友,有一需求就是获取数据库所有表的总计(条数)
思路:动态传入表名, count(1)

--
1.执行这句。获取所有表名 Create table temp_tb (select t.table_name,@rownum:=@rownum+1 as num from information_schema.tables t,(select @rownum:=0 ) b where t.table_schema=test and table_name not in (temp,temp_tb)); -- 2.同理获取表结构,把要统计的结果跟对应的表名放在这个表里面 Create table temp (select t.table_name,@rownum:=@rownum+1 as num from information_schema.tables t,(select @rownum:=0 ) b where t.table_schema=test and table_name not in (temp,temp_tb)); -- 3.删除表数据保留表结构 delete from temp; -- 4.创建存储 create PROCEDURE WhileLoopProc() BEGIN select @num :=1,@len :=count(1) from temp_tb; while @num<@len do select @name :=table_name from temp_tb where num =@num; select @rownum := concat(select count(1),as ,@name , into @temp from , @name); insert into temp(table_name,num) values(@name,@temp); -- 把执行出来的结果保存到结果表中 set @num:=@num+1; prepare stmt from @rownum; EXECUTE stmt; DEALLOCATE PREPARE stmt ; end while; end; -- 5.执行存储 call WhileLoopProc; -- 6.查询结果 select * from temp;
技术分享图片

 

完事!


MYSQL 存储 while

标签:proc   create   表数据   div   朋友   count   行存储   format   begin   

原文地址:https://www.cnblogs.com/1-Admin/p/9068235.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!