Created
July 1, 2019 16:16
-
-
Save koladilip/fb0c2be63daee26f5cfdab49e8d6b0d8 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 ; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment