Първо имате нужда от уникален индекс на (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);