【发布时间】:2020-04-13 04:39:54
【问题描述】:
我想知道我的数据库中每个表中有多少行。我已经做到了
select count(*) _tablename_;
但是我需要在每张桌子上都这样做 - 而且有很多。用表名和行数打印出来的最好方法是什么?
【问题讨论】:
我想知道我的数据库中每个表中有多少行。我已经做到了
select count(*) _tablename_;
但是我需要在每张桌子上都这样做 - 而且有很多。用表名和行数打印出来的最好方法是什么?
【问题讨论】:
SELECT table_name, table_rows
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = '<your db>';
我也希望您意识到您的查询中有一个错误:它缺少FROM。
【讨论】:
format(table_rows) 并在其中获取一些, 来稍微改进一下,这样您就可以更轻松地读取行数。
以下查询将返回每个表中的行数,但它似乎并不总是返回确切的值
SELECT table_name, table_rows
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = '<your db>';
TABLE_ROWS:分区中的表行数。对于已分区的 InnoDB 表,在 TABLE_ROWS 列中给出的行数只是 SQL 优化中使用的估计值,可能并不总是准确的...... 更多https://dev.mysql.com/doc/mysql-infoschema-excerpt/5.5/en/partitions-table.html
【讨论】: