Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Quais são as diferenças práticas entre `REPLACE` e `INSERT ... ON DUPLICATE KEY UPDATE` no MySQL?


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.