BUG en MySQL

Muy buenas a todos. Durante el desarrollo de un proyecto necesitaba insertar un registro en la base de datos, o en caso de que ya existiera, actualizar un campo de dicho registro.

Pues bien, a partir de la versión 4.1 se puede hacer en MySQL todo esto en una sóla sentencia:
INSERT ... ON DUPLICATE KEY UPDATE.

La verdad que no era la primera vez que utilizaba esta sentencia, es mucho más cómodo que hacer primero una consulta a la base de datos para comprobar de la existencia del registro, para que en caso de existir actualizarlo o en caso contrario realizar una inserción.

Pues bien, en este proyecto no me funcionaba.
Tras verificar que todo estaba bien implementado y seguía sin funcionar, opté por hacer el ejemplo más simple para ver si me funcionaba esta sentencia o no. Y no me funcionó. Entonces me preguntaba: ¿Qué diferencia puede haber con proyectos anteriores para que en éste no me funcionara?.
pues estaba en el tipo de tabla en la base de datos que estaba usando. En este caso tenía una tabla del tipo InnoDB y en los anteriores MyISAM.

Tras indagar obtuve la respuesta a mi problema:

“A partir de la versión 5.0.36 de MySQL INSERT … ON DUPLICATE KEY UPDATE no funciona en tablas InnoDB (no da ningún error pero no hace el UPDATE, sólo el INSERT). Es un bug que tiene MySQL!!.”

Os pongo el link por si quereis echarle un vistazo.
BUG INSERT … ON DUPLICATE KEY UPDATE

Espero que a alguien le sirva!!!