The database does not compare old and new values; any UPDATEd string is always considered "changed", even if the values ββmatch. The documentation says that
UPDATE affects ... those rows for which the result of evaluating the WHERE clause as a logical expression is true.
If you want to check the old value, you must do this explicitly:
UPDATE People SET Name = 'Emma' WHERE Id = 1 AND Name IS NOT 'Emma';
source share