MySQL数据库中的非空表列表

时间:2011-01-20 10:53:54

标签: mysql sql

我可以让MySQL返回数据库中的所有非空表吗?很像“SHOW TABLES”,但只有那些不是空的。

4 个答案:

答案 0 :(得分:61)

'information_schema'应该持有相关细节。你可以尝试

SELECT table_type,
       table_name
FROM information_schema.tables
WHERE table_rows >= 1;

从选择性数据库中进行选择。您也可以按TABLE_SCHEMA

进行过滤
SELECT table_schema,
       table_type,
       table_name 
FROM information_schema.tables
WHERE table_rows >= 1
  AND TABLE_SCHEMA=?

答案 1 :(得分:8)

使用数据库'information_schema'并运行

SELECT * FROM `TABLES` WHERE `TABLE_ROWS` > 0 

这将为您提供服务器中用于某个数据库运行的所有非空表

SELECT * FROM `TABLES` WHERE `TABLE_ROWS` > 0  AND `TABLE_SCHEMA` = 'database_name'

答案 2 :(得分:7)

接受的答案对我来说没有用, information_schema table_rows 有一些非常奇怪的值。

这就像一个魅力:

SHOW TABLE STATUS WHERE Rows > 0;

Docs for SHOW TABLE STATUS

答案 3 :(得分:0)

您可以通过phpMyAdmin运行此查询:

SELECT * 
FROM  `information_schema`.`TABLES` 
WHERE  `TABLE_ROWS` > 0

将返回非空表的列表