답변:
SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = 'dbName';
이 내 꺼야:
USE databasename;
SHOW TABLES;
SELECT FOUND_ROWS();
AND table_type = 'BASE TABLE'
use databasename;
명령 에 대한 참고 사항 입니다. 데이터베이스가 실제로 큰 경우 명령은 긴 대기 시간으로 실행될 수 있습니다. 이 경우, -A 옵션 (예 :)을 사용하여 로그인해야하며 mysql -uroot -p -A
명령이 빠르게 작동합니다.
모든 데이터베이스와 요약을 계산하려면 다음을 시도하십시오.
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;
다음은 샘플 실행입니다.
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)
시도 해봐 !!!
FROM
절의 하위 쿼리가 왜 필요한 가요? 왜 안돼 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'
SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = 'database_name';
이것이 도움이되기를 바라며 데이터베이스의 테이블 수만 반환합니다.
Use database;
SELECT COUNT(*) FROM sys.tables;
sys.tables
존재하지 않는mysql
FOUND_ROWS()
했을 때 반환 된 테이블 수가 첫 번째 방법을 사용할 때 반환 된 테이블 수보다 큽니다.