我有67个不同的数据库,每个数据库都有多个公共表。一个这样的表是company
,我想从所有数据库中找到该表中的总行数。如何编写查询以获取所有数据库的总行数?
答案 0 :(得分:3)
您可以查询INFORMATION SCHEMA。
SELECT SUM(table_rows) FROM INFORMATION_SCHEMA.TABLES
WHERE table_name = 'company'
您可以使用表中的ENGINE列来查看您是否依赖于MyISAM表(table_rows将是正确的),或者InnoDB(table_rows将是优化程序使用的估计值)
如果您只有公司表,则可以使用GROUP BY tablename:)
答案 1 :(得分:1)
您可以从INFORMATION_SCHEMA
获取此信息。如果您使用的是MyISAM存储引擎,这将为您提供准确的行数。如果您使用InnoDB,则计数将为近似值。
这是一个示例查询,用于获取所有模式中名为“company”的所有表的总行数:
select sum(table_rows)
from information_schema.tables
where table_name = 'company';