Zuerst benötigen Sie einen eindeutigen Index für (usersessid, product_id)
. Ich bin mir nicht sicher, ob Sie tatsächlich die automatisch generierte Spalte id
verwenden , aber wenn nicht, sollten Sie den Primärschlüssel in (usersessid, product_id)
ändern . Dann anstatt ein separates UPDATE
auszuführen Abfrage nur ein einziges INSERT
ausführen Abfrage:
INSERT INTO sessionBasket (userid, usersessid, date_added, product_id, qty, notes)
VALUES (?, ?, now(), ?, ?, ?)
ON DUPLICATE KEY UPDATE qty = qty + ?
Nur um zu verdeutlichen, wie der eindeutige Index aussehen sollte:
CREATE UNIQUE INDEX sessionBasket_uniq ON sessionBasket (usersessid, product_id);
Oder Primärschlüssel:
ALTER TABLE sessionBasket ADD CONSTRAINT sessionBasket_pkey PRIMARY KEY (usersessid, product_id);