Eerst heb je een unieke index nodig op (usersessid, product_id)
. Ik weet niet zeker of je de automatisch gegenereerde kolom id
daadwerkelijk gebruikt , maar als dat niet het geval is, moet u de primaire sleutel wijzigen in (usersessid, product_id)
. In plaats van een aparte UPDATE
uit te voeren query, voer slechts een enkele INSERT
uit vraag:
INSERT INTO sessionBasket (userid, usersessid, date_added, product_id, qty, notes)
VALUES (?, ?, now(), ?, ?, ?)
ON DUPLICATE KEY UPDATE qty = qty + ?
Even om duidelijk te maken hoe de unieke index eruit moet zien:
CREATE UNIQUE INDEX sessionBasket_uniq ON sessionBasket (usersessid, product_id);
Of primaire sleutel:
ALTER TABLE sessionBasket ADD CONSTRAINT sessionBasket_pkey PRIMARY KEY (usersessid, product_id);