Created
May 23, 2018 16:59
-
-
Save jacquelineIO/e29d6b74d903ee5af21ea11369e538a5 to your computer and use it in GitHub Desktop.
MySQL Calculate Table Checkum Using CRC32. CRC32 can also be MD5 or something else. Adapted from SO post https://stackoverflow.com/a/591329
This file contains 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
SELECT crc | |
FROM | |
( | |
SELECT @r := crc32(CONCAT( IFNULL(TABLE_CATALOG,''), | |
IFNULL(TABLE_SCHEMA,''), | |
IFNULL(TABLE_NAME,''), | |
IFNULL(TABLE_TYPE,''), | |
IFNULL(ENGINE,''), | |
IFNULL(VERSION,''), | |
IFNULL(ROW_FORMAT,''), | |
IFNULL(TABLE_ROWS,''), | |
IFNULL(AVG_ROW_LENGTH,''), | |
IFNULL(DATA_LENGTH,''), | |
IFNULL(MAX_DATA_LENGTH,''), | |
IFNULL(INDEX_LENGTH,''), | |
IFNULL(DATA_FREE,''), | |
IFNULL(AUTO_INCREMENT,''), | |
IFNULL(CREATE_TIME,''), | |
IFNULL(UPDATE_TIME,''), | |
IFNULL(CHECK_TIME,''), | |
IFNULL(TABLE_COLLATION,''), | |
IFNULL(CHECKSUM,''), | |
IFNULL(CREATE_OPTIONS,''), | |
IFNULL(TABLE_COMMENT,''), | |
@r)) AS crc, | |
@c := @c + 1 AS cnt | |
FROM | |
( | |
SELECT @r := '', @c := 0 | |
) rc, | |
( | |
SELECT TABLE_CATALOG, | |
TABLE_SCHEMA, | |
TABLE_NAME, | |
TABLE_TYPE, | |
ENGINE, | |
VERSION, | |
ROW_FORMAT, | |
TABLE_ROWS, | |
AVG_ROW_LENGTH, | |
DATA_LENGTH, | |
MAX_DATA_LENGTH, | |
INDEX_LENGTH, | |
DATA_FREE, | |
AUTO_INCREMENT, | |
CREATE_TIME, | |
UPDATE_TIME, | |
CHECK_TIME, | |
TABLE_COLLATION, | |
CHECKSUM, | |
CREATE_OPTIONS, | |
TABLE_COMMENT | |
FROM information_schema.tables | |
WHERE TABLE_NAME=<sTable> AND TABLE_SCHEMA=<sDbName> | |
) k | |
) ci | |
WHERE cnt = @c; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment