Обновление составного ключа по дубликатному ключу

Мне нужно обновить новую строку, только если оба: date='$dat' и empId='$who (в виде составного ключа). Но вставьте, если один из них или оба отличаются:

 $sql= "INSERT INTO history SET endtimestamp='$now',end='$signature',date='$dat',empId='$who' ON DUPLICATE KEY UPDATE endtimestamp='$now',end='$signature'"; 

Из документации MySQL: http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html

Если вы укажете ON DUPLICATE KEY UPDATE, и будет вставлена ​​строка, которая приведет к дублированию значения в индексе UNIQUE или PRIMARY KEY , будет выполнено ОБНОВЛЕНИЕ старой строки.

Первичный ключ индивидуальный (за столбец). Вам нужно создать объединенный индекс UNIQUE, содержащий оба столбца, тогда обновление будет работать правильно.

Запустите это в базе данных:

 CREATE UNIQUE INDEX unq_employee_id_date ON history (empId, date);