MYSQL 存储 while 统计每个表
发布日期:2022-03-29 14:04:59
浏览次数:30
分类:博客文章
本文共 1005 字,大约阅读时间需要 3 分钟。
群里一朋友,有一需求就是获取数据库每个表的总计(条数) 思路:动态传入表名, count(1) -- 1.执行这句。获取所有表名Create table temp_tb (select t.table_name,@rownum:=@rownum+1 as numfrom information_schema.tables t,(select @rownum:=0 ) bwhere t.table_schema='test' and table_name not in ('temp','temp_tb'));-- 2.同理获取表结构,把要统计的结果跟对应的表名放在这个表里面Create table temp (select t.table_name,@rownum:=@rownum+1 as numfrom information_schema.tables t,(select @rownum:=0 ) bwhere t.table_schema='test' and table_name not in ('temp','temp_tb'));-- 3.删除表数据保留表结构delete from temp;-- 4.创建存储
-- 4.创建存储create PROCEDURE WhileLoopProc()BEGINselect @num :=1,@len :=count(1) from temp_tb;while @num<@len doselect @name :=table_name from temp_tb where num =@num;set @rownum := concat('select count(1)',' as ',@name ,' into @temp from ', @name); set @num:=@num+1;prepare stmt from @rownum; EXECUTE stmt;DEALLOCATE PREPARE stmt ;insert into temp(table_name,num) values(@name,@temp); -- 把执行出来的结果保存到结果表中 end while;end;
-- 5.执行存储 call WhileLoopProc;-- 6.查询结果select * from temp;
完事!
转载地址:https://www.cnblogs.com/1-Admin/p/9068235.html 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
感谢大佬
[***.8.128.20]2024年04月17日 19时36分06秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
MAC下的SVN工具
2021-06-30
mac 终端 svn 命令
2021-06-30
快速搭建 Cocos2d-HTML5 开发调试环境 分享0
2021-06-30
常用快捷键—Webstorm入门指南
2021-06-30
【cocos2d-x从c++到js】回调函数2——JSCallbackWrapper
2021-06-30
【cocos2d-x从c++到js】傀儡构造函数
2021-06-30
关于UIWebView和PhoneGap的总结
2021-06-30
我们需要什么样的敏捷开发?
2021-06-30
苹果公司联系邮箱大全
2021-06-30
软件项目为何会失败?
2021-06-30
phoneGap Android开发环境搭建
2021-06-30
PhoneGap 在 Android 上的插件开发方法
2021-06-30
基于XMPP协议的Android即时通信系
2021-06-30
Unity3D 渲染路径
2021-06-30
Xcode9 新功能
2021-06-30
Xcode 在读写上提速100倍
2021-06-30
Havok物理引擎与Unity3D的结合
2021-06-30
C++17中那些值得关注的特性(上)
2021-06-30
Unity移动端动态阴影
2021-06-30