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

REPLACE versus INSERT em SQL


De acordo com a documentação , a diferença é:

Então o que ele faz:
  • Tente corresponder a linha usando um dos índices disponíveis;
  • Se a linha ainda não existir:adicione uma nova;
  • Se a linha já existir:exclua a linha existente e adicione uma nova depois.

Quando usar isso pode ser útil em insert separado e update declarações?
  • Você pode chamar isso com segurança e não precisa se preocupar com as linhas existentes (uma instrução versus duas);
  • Se você quiser que os dados relacionados sejam removidos ao insert / updating , você pode usar replace :exclui todos os dados relacionados também);
  • Quando os acionadores precisam ser acionados e você espera um insert (motivo ruim, ok).