सबसे पहले आपको (usersessid, product_id)
. पर एक अद्वितीय अनुक्रमणिका की आवश्यकता है . मुझे यकीन नहीं है कि क्या आप वास्तव में स्वचालित रूप से जेनरेट किए गए कॉलम id
. का उपयोग कर रहे हैं , लेकिन यदि नहीं, तो आपको प्राथमिक कुंजी को (usersessid, product_id)
में बदलना चाहिए . फिर एक अलग UPDATE
running चलाने के बजाय क्वेरी, केवल एक ही 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);