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

Como executar um UPSERT para que eu possa usar valores novos e antigos na parte de atualização


Conforme mencionado no meu comentário, você não precisa fazer a subseleção para fazer referência à linha que está causando o disparo de ON DUPLICATE KEY. Então, no seu exemplo, você pode usar o seguinte:
INSERT INTO `item`
(`item_name`, items_in_stock)
VALUES( 'A', 27)
ON DUPLICATE KEY UPDATE
`new_items_count` = `new_items_count` + 27

Lembre-se de que a maioria das coisas é realmente simples, se você se pegar complicando demais algo que deveria ser simples, provavelmente está fazendo da maneira errada :)