इसे ही Upsert
कहा जाता है . MySQL सिंटैक्स बहुत अजीब है, लेकिन आप इसे कुछ इस तरह कर सकते हैं:
INSERT INTO eventcounter (userID, eventID, activityID) VALUES(1,1,1)
ON DUPLICATE KEY UPDATE
activityID = VALUES(activityID)
हालांकि यह केवल डुप्लीकेट पीके के लिए काम करता है (आपके पसंद के किसी भी क्षेत्र के लिए नहीं), इसलिए इस मामले में यह केवल तभी काम करेगा जब userID
और eventID
पीके लिखें और आप केवल activityID
बदलना चाहते हैं
अन्यथा, आप IF-ELSE मार्ग पर जा सकते हैं, कुछ इस तरह:
DECLARE mycount INT;
SET mycount = (SELECT COUNT(*) FROM eventcounter WHERE userID=1 AND eventID=1);
IF mycount > 0 THEN
UPDATE eventcounter SET activityID=1 WHERE userID=1 AND eventID=1;
ELSE
INSERT INTO eventcounter (userID, eventID, activityID) VALUES(1,1,1);
END IF;
अस्वीकरण:पूरी तरह से परीक्षण न किया गया कोड