Først skal du have et unikt indeks på (usersessid, product_id)
. Jeg er ikke sikker på, om du rent faktisk bruger den automatisk genererede kolonne id
, men hvis ikke, bør du ændre den primære nøgle til (usersessid, product_id)
. Så i stedet for at køre en separat UPDATE
forespørgsel, kør kun en enkelt INSERT
forespørgsel:
INSERT INTO sessionBasket (userid, usersessid, date_added, product_id, qty, notes)
VALUES (?, ?, now(), ?, ?, ?)
ON DUPLICATE KEY UPDATE qty = qty + ?
Bare for at gøre det klart, hvordan det unikke indeks skal se ud:
CREATE UNIQUE INDEX sessionBasket_uniq ON sessionBasket (usersessid, product_id);
Eller primær nøgle:
ALTER TABLE sessionBasket ADD CONSTRAINT sessionBasket_pkey PRIMARY KEY (usersessid, product_id);