Respuestas:
SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = 'dbName';
Esto es mío:
USE databasename;
SHOW TABLES;
SELECT FOUND_ROWS();
AND table_type = 'BASE TABLE'
use databasename;
comando. Si la base de datos es realmente grande, el comando puede ejecutarse con un largo tiempo de espera. En ese caso, el inicio de sesión debe hacerse con la opción -A, es decir:, mysql -uroot -p -A
y el comando funcionará rápidamente.
En caso de que desee contar todas las bases de datos más un resumen, intente esto:
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;
Aquí hay una muestra de ejecución:
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)
Darle una oportunidad !!!
FROM
cláusula? ¿Por qué no solo 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'
Esto le dará los nombres y el recuento de tablas de todas las bases de datos en usted mysql
SELECT TABLE_SCHEMA,COUNT(*) FROM information_schema.tables group by TABLE_SCHEMA;
Para contar el número de tablas solo haz esto:
USE your_db_name; -- set database
SHOW TABLES; -- tables lists
SELECT FOUND_ROWS(); -- number of tables
A veces las cosas fáciles harán el trabajo.
SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = 'database_name';
Puede haber múltiples formas de contar las tablas de una base de datos. Mi favorito es esto en:
SELECT
COUNT(*)
FROM
`information_schema`.`tables`
WHERE
`table_schema` = 'my_database_name'
;
desde la línea de comando:
mysql -uroot -proot -e "select count(*) from
information_schema.tables where table_schema = 'database_name';"
en el ejemplo anterior, la raíz es nombre de usuario y contraseña, alojada en localhost.
Espero que esto ayude, y devuelva solo el número de tablas en una base de datos
Use database;
SELECT COUNT(*) FROM sys.tables;
sys.tables
no existe enmysql
FOUND_ROWS()
fue mayor que la cantidad de tablas que regresaron cuando usé el primer método.