sql >> Database >  >> RDS >> Mysql

Hoe een UPSERT uit te voeren zodat ik zowel nieuwe als oude waarden in update-gedeelte kan gebruiken

Zoals vermeld in mijn opmerking, hoef je de subselect niet te doen om te verwijzen naar de rij die ervoor zorgt dat ON DUPLICATE KEY wordt geactiveerd. Dus in uw voorbeeld kunt u het volgende gebruiken:

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

Onthoud dat de meeste dingen heel eenvoudig zijn, als je jezelf betrapt op het te ingewikkeld maken van iets dat eenvoudig zou moeten zijn, dan doe je het waarschijnlijk op de verkeerde manier :)



  1. Hoe het tijdveld in SQL Server samen te vatten?

  2. MySQL - Hoe kolommen naar rijen ongedaan te maken?

  3. Joomla SQL-injectie-kwetsbaarheid

  4. Hoe een berekende kolom in de SQL Server-tabel toe te voegen - SQL Server / T-SQL-zelfstudie, deel 47