Nejprve potřebujete jedinečný index na (usersessid, product_id)
. Nejsem si jistý, zda skutečně používáte automaticky generovaný sloupec id
, ale pokud ne, měli byste změnit primární klíč na (usersessid, product_id)
. Potom místo spuštění samostatného UPDATE
dotaz, spusťte pouze jeden INSERT
dotaz:
INSERT INTO sessionBasket (userid, usersessid, date_added, product_id, qty, notes)
VALUES (?, ?, now(), ?, ?, ?)
ON DUPLICATE KEY UPDATE qty = qty + ?
Aby bylo jasné, jak by měl jedinečný index vypadat:
CREATE UNIQUE INDEX sessionBasket_uniq ON sessionBasket (usersessid, product_id);
Nebo primární klíč:
ALTER TABLE sessionBasket ADD CONSTRAINT sessionBasket_pkey PRIMARY KEY (usersessid, product_id);