Câu trả lời:
SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = 'dbName';
Cái này của tôi ư:
USE databasename;
SHOW TABLES;
SELECT FOUND_ROWS();
AND table_type = 'BASE TABLE'
use databasename;
lệnh. Nếu cơ sở dữ liệu thực sự lớn, lệnh có thể thực thi với thời gian chờ đợi lâu. Trong trường hợp đó, đăng nhập nên được thực hiện với tùy chọn -A, tức là : mysql -uroot -p -A
, và lệnh sẽ hoạt động nhanh.
Trong trường hợp bạn muốn đếm tất cả các cơ sở dữ liệu cộng với một bản tóm tắt, vui lòng thử điều này:
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;
Đây là một mẫu chạy:
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)
Hãy thử một lần !!!
FROM
mệnh đề? Tại sao không chỉ 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'
Điều này sẽ cung cấp cho bạn tên và số lượng bảng của tất cả các cơ sở dữ liệu trong bạn mysql
SELECT TABLE_SCHEMA,COUNT(*) FROM information_schema.tables group by TABLE_SCHEMA;
Để đếm số lượng bảng, chỉ cần làm điều này:
USE your_db_name; -- set database
SHOW TABLES; -- tables lists
SELECT FOUND_ROWS(); -- number of tables
Đôi khi những điều dễ dàng sẽ làm công việc.
SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = 'database_name';
từ dòng lệnh:
mysql -uroot -proot -e "select count(*) from
information_schema.tables where table_schema = 'database_name';"
trong ví dụ gốc là tên người dùng và mật khẩu, được lưu trữ trên localhost.
Hy vọng điều này sẽ giúp và chỉ trả về số lượng bảng trong cơ sở dữ liệu
Use database;
SELECT COUNT(*) FROM sys.tables;
sys.tables
không tồn tại trongmysql
FOUND_ROWS()
lớn hơn số lượng bảng được trả về khi tôi sử dụng phương thức đầu tiên.