Forked from koladilip/get-rows-count-by-table-of-mysql-db.sql
Created
February 1, 2023 09:11
-
-
Save faizalrf/d0f00b0a7fde0933ba7770ebff8a20be to your computer and use it in GitHub Desktop.
Get Rows counts from all the tables of MySQL DB
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| DELIMITER $$ | |
| CREATE PROCEDURE `COUNT_ROWS_COUNTS_BY_TABLE`(dbName varchar(128)) | |
| BEGIN | |
| DECLARE done INT DEFAULT 0; | |
| DECLARE TNAME CHAR(255); | |
| DECLARE table_names CURSOR for | |
| SELECT CONCAT("`", TABLE_SCHEMA, "`.`", table_name, "`") FROM INFORMATION_SCHEMA.TABLES where TABLE_SCHEMA = dbName; | |
| DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1; | |
| OPEN table_names; | |
| DROP TABLE IF EXISTS TABLES_ROWS_COUNTS; | |
| CREATE TEMPORARY TABLE TABLES_ROWS_COUNTS | |
| ( | |
| TABLE_NAME CHAR(255), | |
| RECORD_COUNT INT | |
| ) ENGINE = MEMORY; | |
| WHILE done = 0 DO | |
| FETCH NEXT FROM table_names INTO TNAME; | |
| IF done = 0 THEN | |
| SET @SQL_TXT = CONCAT("INSERT INTO TABLES_ROWS_COUNTS(SELECT '" , TNAME , "' AS TABLE_NAME, COUNT(*) AS RECORD_COUNT FROM ", TNAME, ")"); | |
| PREPARE stmt_name FROM @SQL_TXT; | |
| EXECUTE stmt_name; | |
| DEALLOCATE PREPARE stmt_name; | |
| END IF; | |
| END WHILE; | |
| CLOSE table_names; | |
| SELECT * FROM TABLES_ROWS_COUNTS; | |
| SELECT SUM(RECORD_COUNT) AS TOTAL_DATABASE_RECORD_CT FROM TABLES_ROWS_COUNTS; | |
| END$$ | |
| DELIMITER ; |
Author
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
init