sql >> Base de Datos >  >> RDS >> Mysql

Cómo realizar un UPSERT para poder usar valores nuevos y antiguos en la parte de actualización

Como mencioné en mi comentario, no tiene que hacer la subselección para hacer referencia a la fila que está causando que se active ON DUPLICATE KEY. Entonces, en tu ejemplo puedes usar lo siguiente:

INSERT INTO `item`
(`item_name`, items_in_stock)
VALUES( 'A', 27)
ON DUPLICATE KEY UPDATE
`new_items_count` = `new_items_count` + 27

Recuerda que la mayoría de las cosas son realmente simples, si te encuentras complicando demasiado algo que debería ser simple, lo más probable es que lo estés haciendo de manera incorrecta :)