Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да изпълня UPSERT, така че да мога да използвам както нови, така и стари стойности в частта за актуализиране

Както беше споменато в моя коментар, не е нужно да правите подселекция, за да се позовавате на реда, който причинява задействане на ON DUPLICATE KEY. Така че във вашия пример можете да използвате следното:

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

Не забравяйте, че повечето неща са наистина прости, ако се хванете, че преусложнявате нещо, което трябва да е просто, най-вероятно го правите по грешен начин :)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Какво връща успешното MySQL DELETE? Как да проверя дали DELETE е успешно?

  2. MySQL - SELECT WHERE поле В (подзаявка) - Изключително бавно защо?

  3. Как да промените часовата зона на MySQL сървъра

  4. Как да получите вчерашната дата в MySQL

  5. mysql_fetch_row() срещу mysql_fetch_assoc() срещу mysql_fetch_array()