คำสั่ง
SELECT TABLE_NAME, TABLE_ROWS FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'yourDatabaseName';
ตัวอย่าง (ฐานข้อมูล business)
mysql> SELECT TABLE_NAME, TABLE_ROWS FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'business';
ผลลัพธ์ (บางส่วน)
+--------------------------------------------------+------------+ | TABLE_NAME | TABLE_ROWS | +--------------------------------------------------+------------+ | accentsearchdemo | 2 | | add1daydemo | 2 | | addcheckconstraintdemo | 0 | | addcolumntable | 0 | | addconstraintdemo | 2 | | adding5hours | 2 | | addingautoincrement | 2 | | addingcolumnnamedemo | 0 | | addingunique | 2 | | addnotnulldemo | 2 | | agecalculationfromdatetime | 0 | | ... (รวมมากมาย) | ... | +--------------------------------------------------+------------+
ข้อควรทราบ
TABLE_ROWSเป็น ประมาณการ (Estimate) สำหรับ InnoDB- ค่าจริง:
SELECT COUNT(*) FROM table(ช้ากว่า) - MyISAM: TABLE_ROWS แม่นยำ
- InnoDB: อาจคลาดเคลื่อน ±10-20% ขึ้นอยู่กับ Statistics
ถ้าต้องการค่าจริงทุกตาราง
SELECT TABLE_NAME,
(SELECT COUNT(*) FROM `business`.`table_name`) AS ExactCount
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'business';
(ต้อง Dynamic SQL หรือเขียน Stored Procedure เพราะไม่สามารถใช้ Table Name จาก Column ได้โดยตรง)