2011-01-20 14 views

risposta

49

'information_schema' deve essere premuto il relativo dettagli. Potete provare

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

selezionare da un database selettivo. È inoltre possibile filtrare per TABLE_SCHEMA:

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

Vale la pena notare che per InnoDB non è garantito che funzioni il 100% delle volte. 'table_rows' in' information_schema' è solo una stima e potrebbe non riflettere il numero reale di righe, vedi http://dev.mysql.com/doc/refman/5.7/en/tables-table.html –

+0

Questo non lavoro per me, ho pubblicato una soluzione che funzionava di seguito. – 3Gee

8

Usa database 'information_schema' ed eseguire

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

questo vi darà tutte le tabelle non vuoti nel server per un certo periodo di database

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

sei sicuro che funziona? Non fa per me. Dice "Colonna sconosciuta" Table_Rows' in where clausola. ' – Espanta

+0

Usi MySQL? Quale versione? –

+0

SELEZIONA * FROM information_schema' .TABLES' WHERE 'TABLE_ROWS'> 0 @YasenZhelev piccola correzione –

0

È possibile eseguire la query tramite phpMyAdmin:

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

restituirà un elenco di tabelle non vuote

+0

oops, cambia il "=" in> per trovare le tabelle con le righe. – timpng1

2

La risposta accettata non ha mai funzionato per me, information_schematable_rows hanno alcuni valori molto strani.

questo ha funzionato come un fascino:

SHOW TABLE STATUS WHERE Rows > 0; 

Docs for SHOW TABLE STATUS

Problemi correlati