Is it possible to select entire row in a table and get sort of checksum? I am looking for a way to tell my code to update data only if at least one record has been changed. From perspective of data changes tracking it would help me to size down a number of changes noted in history table.
You can combine the MD5()
and CONCAT()
functions to generate an MD5 checksum for the row:
SELECT MD5(CONCAT(col1, col2, col3, ...)) as MD5_checksum FROM table;
If one of the columns is nullable, be sure you wrap it in IFNULL(col, '')
, as a null will make the result of the CONCAT()
also null.
Also be aware that this is not 100% safe. If you remove the 1 character from a column and add it as the first character of the next column, the outcome of the CONCAT()
and thus of the MD5 hash will be the same.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With