2010-06-08 99 views
3

我不知道在MySQL上直接使用SQL是否可行。我需要在数据库的每个表上执行SELECT COUNT(*)FROM,并将结果输出到一个结果集中。选择数据库中所有表中的行数

是否可以只使用SQL?

回答

3

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

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

+3

此信息仅适用于某些发动机。对于其他人来说,获得实际行数的唯一方法是运行'SELECT COUNT(*)'。 http://dev.mysql.com/doc/refman/5.1/en/show-table-status.html – a1ex07 2010-06-08 23:01:33

+0

扩展答案:http://stackoverflow.com/questions/24707814/mysql-summarize-all-table-行数-IN-A-单查询 – gwideman 2014-07-11 23:54:04

0

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

..你可以做一个游标和动态SQL。

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

.... type thing!

我敢肯定,MySQL可能有一个内置的SQL或SP会为你做这个,恐怕我不知道它是什么。

+0

这是SQL Server的动态SQL语法 - 你需要去改变它使用MySQL的预处理语句的语法:http://dev.mysql.com/tech-resources/articles/4.1/prepared-statements.html – 2010-06-08 23:18:52

相关问题