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

ПРИ АКТУАЛИЗИРАНЕ НА ДУБЛИРАН КЛЮЧ изпълнение/дизайн

Първо имате нужда от уникален индекс на (usersessid, product_id) . Не съм сигурен дали всъщност използвате автоматично генерираната колона id , но ако не, трябва да промените първичния ключ на (usersessid, product_id) . След това вместо да изпълнявате отделен UPDATE заявка, стартирайте само един INSERT заявка:

INSERT INTO sessionBasket (userid, usersessid, date_added, product_id, qty, notes)
VALUES (?, ?, now(), ?, ?, ?)
ON DUPLICATE KEY UPDATE qty = qty + ?

Само за да стане ясно как трябва да изглежда уникалният индекс:

CREATE UNIQUE INDEX sessionBasket_uniq ON sessionBasket (usersessid, product_id);

Или първичен ключ:

ALTER TABLE sessionBasket ADD CONSTRAINT sessionBasket_pkey PRIMARY KEY (usersessid, product_id);



  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 поддържа ли историческа дата (като 1200)?

  2. Как да подготвим изявление за заявка за актуализиране?

  3. как да получите json данни от заявка за публикация на iphone

  4. Оптимизиране на заявката (Индексиране, EXPLAIN) Mysql

  5. Колко записа има в един възел на B-дървото на MySQL индекс?