方法1 直接查询,方法简单,但达不到想要的效果,记录数稍微多一点,总数就偏高

use db_name;
select table_name, table_rows from information_schema.tables
where table_schema = 'db_name'

得到的结果样式为:

table_nametable_rows
table1m行
table2n行

只要数据表内记录行数一多,记录数就比我们想要的结果偏高。

方法2 拼接 select count(主键id) 语句

use information_schema;
select group_concat('select ', '"', table_name, '",', ' count(id) from ',
    TABLE_SCHEMA,
    '.',
    table_name
    separator ' union all \n') from information_schema.TABLES
where TABLE_SCHEMA = 'db_name';

可以得到拼接的查询语句

select "table1", count(id) from db_name.table1 union all 
select "table2", count(id) from db_name.table2 union all 
select "table3", count(id) from db_name.table3

结尾填上分号运行一次即可。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐