sql >> Database teknologi >  >> RDS >> Mysql

Sådan udføres en UPSERT, så jeg kan bruge både nye og gamle værdier i opdateringsdelen

Som nævnt i min kommentar, behøver du ikke at gøre undervælgelsen for at referere til den række, der får ON DUBLIKATØGLE til at udløses. Så i dit eksempel kan du bruge følgende:

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

Husk at de fleste ting er virkelig enkle, hvis du fanger dig selv i at overkomplicere noget, der burde være enkelt, så gør du det højst sandsynligt på den forkerte måde :)



  1. onCreate() af RoomDatabase.Callback() blev ikke kaldt efter et vellykket kald til .build()

  2. JDBCTemplate sæt indlejret POJO med BeanPropertyRowMapper

  3. Hvordan opretter man forbindelse til MySQL på Amazon EC2 fra Linux / Mac?

  4. Eksempler på konvertering af 'smalldatetime' til 'datetime' i SQL Server (T-SQL)