CREATE TABLE `test` ( `foo` varchar(32) NOT NULL, `datetime` datetime default NULL, PRIMARY KEY (`foo`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; INSERT INTO test (foo) VALUES ('bar') ON DUPLICATE KEY UPDATE datetime = NOW(); # Works. INSERT INTO test (foo) VALUES ('bar') ON DUPLICATE KEY UPDATE datetime = NOW(); # Works. INSERT INTO test (foo) VALUES ('bar') ON DUPLICATE KEY UPDATE datetime = NOW(); # Does not work. # The third time, it should update the value, but does not.