选择数据库中所有表的行数

Posted

技术标签:

【中文标题】选择数据库中所有表的行数【英文标题】:Select number of rows in all tables in the database 【发布时间】:2010-06-08 22:44:58 【问题描述】:

我想知道这是否可以在 mysql 上使用直接 SQL。我需要对数据库中的每个表执行 SELECT COUNT(*) FROM 并将结果输出到一个结果集中。

是否可以只使用 SQL?

【问题讨论】:

【参考方案1】:

事实上有。您必须使用 INFORMATION_SCHEMA。在 INFORMATION_SCHEMA.tables 中有一列 TABLE_ROWS。

http://dev.mysql.com/doc/refman/5.0/en/tables-table.html

【讨论】:

此信息仅对某些引擎是可靠的。对于其他人,获取实际行数的唯一方法是运行SELECT COUNT(*)。 dev.mysql.com/doc/refman/5.1/en/show-table-status.html 扩展答案:***.com/questions/24707814/…【参考方案2】:

如果一个 SQL 算作一个存储过程,那么是的!

.. 你可以使用游标和动态 sql。

exec("select count(*) from " + @tableName) 

....输入东西!

我确定 mysql 可能有一个内置的 SQL 或 SP 可以为您执行此操作,但恐怕我不知道它是什么。

【讨论】:

这是 SQL Server 动态 SQL 语法 - 您需要将其更改为使用 MySQL 的 Prepared Statement 语法:dev.mysql.com/tech-resources/articles/4.1/…

以上是关于选择数据库中所有表的行数的主要内容,如果未能解决你的问题,请参考以下文章

Netezza 中数据库中所有表的行数

sql 获取数据库中所有表的行数。

如何用SQL语句求oracle 数据库所有表的行数?

mysql查看数据库中所有表的行数,并进行排序

如何获取 SQL SERVER 数据库中所有表的行数 [重复]

MS SQL 如何查看一个数据库中所有表的行数