Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Tổng số hàng của bảng trùng tên trên nhiều database trong MySQL

Dùng INFORMATION_SCHEMA.TABLES kết hợp SUM(table_rows) để tính tổng số hàng của các bảng cùng tên nằm ở nhiều database khác nhau.

Ví dụ minh họa

Database web: bảng DemoTable1568 (3 hàng).

Database sample: bảng DemoTable1568 (4 hàng).

Truy vấn tổng số hàng:

SELECT SUM(table_rows) AS TotalNumberOfRows
FROM information_schema.tables
WHERE table_name = 'DemoTable1568';

Kết quả

TotalNumberOfRows
7

Giải thích

  • information_schema.tables chứa metadata của tất cả bảng trên server.
  • table_rows: Số hàng ước lượng (cho InnoDB) hoặc chính xác (MyISAM).
  • SUM() cộng dồn qua các database.

⚠️ Lưu ý quan trọng

  • table_rows là ước lượng cho InnoDB (có thể sai lệch). Để chính xác 100%: SELECT SUM(cnt) FROM (SELECT COUNT(*) AS cnt FROM web.DemoTable1568 UNION ALL SELECT COUNT(*) FROM sample.DemoTable1568) t;
  • Cần quyền SELECT trên information_schema (thường có mặc định).
  • Lọc thêm table_schema nếu chỉ muốn một số DB: WHERE table_name = '...' AND table_schema IN ('web','sample')

Mở rộng: Lấy số hàng từng database

SELECT table_schema, table_name, table_rows
FROM information_schema.tables
WHERE table_name = 'DemoTable1568';