2011-01-20 42 views

Respuesta

49

'INFORMATION_SCHEMA' debe ser la celebración de la correspondiente detalles. Puede intentar

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

para seleccionar desde una base de datos selectiva. También puede filtrar por TABLE_SCHEMA:

SELECT table_schema, 
     table_type, 
     table_name 
FROM information_schema.tables 
WHERE table_rows >= 1 
    AND TABLE_SCHEMA=? 
+1

Vale la pena señalar que para InnoDB no se garantiza que funcione el 100% del tiempo. 'table_rows' en' information_schema' es solo una estimación y podría no reflejar el número real de filas, ver http://dev.mysql.com/doc/refman/5.7/en/tables-table.html –

+0

Esto no trabajo para mí en absoluto, he publicado una solución que funcionaba a continuación. – 3Gee

8

uso de base de datos 'INFORMATION_SCHEMA' y ejecutar

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

esto le dará todas las tablas no vacías en el servidor durante un determinado plazo de base de datos

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

está usted seguro de que funciona? No es para mi Dice 'Columna desconocida 'Table_Rows' en la cláusula where. ' – Espanta

+0

¿Usas MySQL? ¿Cual version? –

+0

SELECCIONAR * FROM information_schema.'TABLES' DONDE 'TABLE_ROWS'> 0 @YasenZhelev pequeña corrección –

0

Usted puede ejecutar esta consulta a través de phpMyAdmin:

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

devolverá una lista de tablas no vacías

+0

oops, cambie "=" a> para buscar tablas con filas. – timpng1

2

La respuesta aceptada nunca trabajó para mí, information_schematable_rows tienen valores muy raros.

Esto funcionó como un encanto:

SHOW TABLE STATUS WHERE Rows > 0; 

Docs for SHOW TABLE STATUS

Cuestiones relacionadas