REPLACE
executa internamente uma exclusão e, em seguida, uma inserção. Isso pode causar problemas se você tiver uma restrição de chave estrangeira apontando para essa linha. Nesta situação, o REPLACE
pode falhar ou pior:se sua chave estrangeira estiver configurada para exclusão em cascata, o REPLACE
fará com que as linhas de outras tabelas sejam excluídas. Isso pode acontecer mesmo que a restrição tenha sido satisfeita antes e depois do REPLACE
Operação. Usando
INSERT ... ON DUPLICATE KEY UPDATE
evita este problema e, portanto, é o preferido.