"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como o MySQL's `on Duplicate Key Update` lide com inserções e atualizações?

Como o MySQL's `on Duplicate Key Update` lide com inserções e atualizações?

Postado em 2025-03-23
Navegar:273

How Can MySQL's `ON DUPLICATE KEY UPDATE` Handle Both Inserts and Updates?

mysql's na Key Update : Gerenciando com eficiência Inserções e atualizações

operações de banco de dados geralmente exigem a inserção de novas linhas enquanto lidam simultaneamente atualizações para linhas existentes com chaves exclusivas correspondentes. MySQL é poderoso inserir ... na declaração de chave duplicada resolve elegantemente esse problema comum.

o desafio: evitando entradas duplicadas

O objetivo é adicionar uma nova linha a uma tabela, mas se uma linha com a mesma chave única (como um id) já existe, atualize a linha existente em vez de criar uma duplicata.

A solução: inserir ... na Key Update

Este comando único alcança a funcionalidade de inserção e atualização:
  • inserção:
  • Se nenhuma chave única correspondente existe, uma nova linha será inserida com os valores especificados.
  • update:
  • Se uma linha com a mesma chave única já existe, as colunas especificadas nessa linha são atualizadas com os valores fornecidos.

exemplo ilustrativo:

Considere esta consulta:
INSERT INTO my_table (id, name, age) VALUES (1, 'Alice', 30) ON DUPLICATE KEY UPDATE name = 'Alice', age = 30;

aqui está a quebra:
  • A tentativa é inserir uma linha com id = 1 , name = 'alice' e AGE = 30
  • .
  • se id = 1 já existe, o na cláusula duplicata update
  • aborda efeito.
  • o nome as colunas da linha existente são atualizadas para os valores fornecidos na consulta. Isso mescla efetivamente os novos dados com o registro existente.
  • Esta abordagem simplifica o gerenciamento do banco de dados, impedindo entradas duplicadas e garantindo a consistência dos dados com uma única instrução SQL concisa.
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3