Esto es solo una suposición, ya que no ha proporcionado su esquema, pero ¿una de las columnas de su clave única admite valores NULL?
Editar:
Como dice @G-Nugget en los comentarios, necesita una clave única en las columnas en cuestión:
http://dev.mysql.com/doc /refman/5.6/en/insertar-en-duplicado.html
Debe tener una clave única en la combinación de columnas que debe ser única.
por ejemplo:
ALTER TABLE yourTable ADD UNIQUE KEY (`canid`, `categoryid`);
Además, cuando haga preguntas sobre la base de datos, incluya SHOW CREATE TABLE
para las tablas en cuestión.