Tóm tắt
Truy vấn INFORMATION_SCHEMA.COLUMNS đếm số bảng distinct – trả về 0 nếu database rỗng (không có bảng).
Truy vấn
SELECT COUNT(DISTINCT TABLE_NAME) AS TotalTables
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'ten_database';
Ví dụ 2 trường hợp
Database 'sample' (có bảng)
SELECT COUNT(DISTINCT TABLE_NAME) AS TotalTables
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'sample';
-- Kết quả: 130 bảng
Database 'test3' (rỗng)
SELECT COUNT(DISTINCT TABLE_NAME) AS TotalTables
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'test3';
-- Kết quả: 0
Cách khác
SHOW TABLES FROM ten_database– trả về danh sách, rỗng nếu không có bảng.SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'db'– đếm từ TABLES (bao gồm VIEW).SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'db' AND TABLE_TYPE = 'BASE TABLE'– chỉ bảng cơ sở.
Lưu ý
- Database vừa tạo (CREATE DATABASE) chưa có bảng → COUNT = 0.
- Quyền: cần SELECT trên INFORMATION_SCHEMA (mặc định user thường có).
- VIEW cũng xuất hiện trong COLUMNS – COUNT(DISTINCT TABLE_NAME) đếm cả view. Dùng TABLES + TABLE_TYPE='BASE TABLE' để chỉ đếm bảng.