operação eficiente para MySQL: usando inserção ... na Key Update
]No MySQL Database Management, geralmente é necessário executar operações, como inserir novas linhas ou atualizar linhas existentes com base nos dados existentes. Isso é chamado de operação "UpSert" (inserir ou atualizar).
MySQL fornece a sintaxe inserir ... na update de chave duplicada
para implementar com eficiência a função upSert. Seu princípio de trabalho é o seguinte:
INSERT INTO `table_name`
(`column1`, `column2`, ...)
VALUES
(value1, value2, ...)
ON DUPLICATE KEY UPDATE
`column1` = value1_updated,
`column2` = value2_updated,
...
A cláusula inserir
especifica o valor a ser inserido na tabela. na cláusula Duplicate Key Atualize
define a ação a ser executada quando houver uma linha com a mesma chave primária (ou índice exclusivo) na tabela.
Por exemplo, considere a tabela a seguir:
CREATE TABLE `usage` (
`thing_id` INT NOT NULL PRIMARY KEY,
`times_used` INT DEFAULT 0,
`first_time_used` TIMESTAMP
);
se você deseja inserir novos dados para a linha com thing_id
de 4815162342, adicione 1 à coluna times_used
e set FIRNTE_TIMUSE_USUSED
para o timestamp atual, Você pode usar a seguinte consulta UPSert:
INSERT INTO `usage`
(`thing_id`, `times_used`, `first_time_used`)
VALUES
(4815162342, 1, NOW())
ON DUPLICATE KEY UPDATE
`times_used` = `times_used` 1
se a linha com thing_id
de 4815162342 já existe, a consulta atualizará a coluna times_used
, enquanto FIRNTE_TIME_USE_USED
permanece inalterado. Caso contrário, uma nova linha será inserida.
inserir ... ON ON Duplicate Key Update
é uma tecnologia flexível e eficiente para executar operações de upsert em MySQL. Ele permite que você execute operações de inserção e atualização com uma única consulta, simplificando o código e melhorando o desempenho.
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