Antworten:
SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = 'dbName';
Das ist meins:
USE databasename;
SHOW TABLES;
SELECT FOUND_ROWS();
AND table_type = 'BASE TABLE'
use databasename;
Befehl. Wenn die Datenbank wirklich groß ist, kann der Befehl mit einer langen Wartezeit ausgeführt werden. In diesem Fall sollte die Anmeldung mit der Option -A erfolgen, dh: mysql -uroot -p -A
und der Befehl funktioniert schnell.
Wenn Sie alle Datenbanken sowie eine Zusammenfassung zählen möchten, versuchen Sie Folgendes:
SELECT IFNULL(table_schema,'Total') "Database",TableCount
FROM (SELECT COUNT(1) TableCount,table_schema
FROM information_schema.tables
WHERE table_schema NOT IN ('information_schema','mysql')
GROUP BY table_schema WITH ROLLUP) A;
Hier ist ein Probelauf:
mysql> SELECT IFNULL(table_schema,'Total') "Database",TableCount
-> FROM (SELECT COUNT(1) TableCount,table_schema
-> FROM information_schema.tables
-> WHERE table_schema NOT IN ('information_schema','mysql')
-> GROUP BY table_schema WITH ROLLUP) A;
+--------------------+------------+
| Database | TableCount |
+--------------------+------------+
| performance_schema | 17 |
| Total | 17 |
+--------------------+------------+
2 rows in set (0.29 sec)
Versuche es !!!
FROM
Klausel? Warum nicht einfach SELECT IFNULL(table_schema, 'Total') Database, COUNT(*) TableCount FROM information_schema.tables WHERE table_schema NOT IN ('information_schema','mysql') GROUP BY table_schema WITH ROLLUP
?
SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = 'dbo' and TABLE_TYPE='BASE TABLE'
Dies gibt Ihnen Namen und Tabellenanzahl aller Datenbanken in Ihrer MySQL
SELECT TABLE_SCHEMA,COUNT(*) FROM information_schema.tables group by TABLE_SCHEMA;
Um die Anzahl der Tabellen zu zählen, gehen Sie einfach wie folgt vor:
USE your_db_name; -- set database
SHOW TABLES; -- tables lists
SELECT FOUND_ROWS(); -- number of tables
Manchmal erledigen einfache Dinge die Arbeit.
SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = 'database_name';
von der Kommandozeile:
mysql -uroot -proot -e "select count(*) from
information_schema.tables where table_schema = 'database_name';"
Im obigen Beispiel ist root Benutzername und Passwort, die auf localhost gehostet werden.
mysql> show tables;
Es werden die Namen der Tabellen und dann die Anzahl der Tabellen angezeigt.
Ich hoffe, dies hilft und gibt nur die Anzahl der Tabellen in einer Datenbank zurück
Use database;
SELECT COUNT(*) FROM sys.tables;
sys.tables
existiert nicht inmysql
FOUND_ROWS()
war größer als die Anzahl der Tabellen, die bei Verwendung der ersten Methode zurückgegeben wurden.