Lo que necesito es establecer los valores de todos los campos de un registro con una clave en particular (la clave es compuesta en realidad), insertando el registro si todavía no hay ningún registro con dicha clave.
REPLACE
parece destinado a hacer el trabajo, pero al mismo tiempo sugiere su página de manual
INSERT ... ON DUPLICATE KEY UPDATE
.
¿Cuáles de ellos debería elegir mejor y por qué?
El único "efecto secundario" de REPLACE
eso que me viene a la mente es que incrementaría los valores de autoincremento (afortunadamente no uso ninguno) mientras que INSERT ... ON DUPLICATE KEY UPDATE
probablemente no lo haría. ¿Cuáles son las otras diferencias prácticas a tener en cuenta? ¿En qué casos particulares se REPLACE
puede preferir INSERT ... ON DUPLICATE KEY UPDATE
y viceversa?