Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MySQL अगर पंक्ति मौजूद है तो अपडेट करें और डालें

इसे ही 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;

अस्वीकरण:पूरी तरह से परीक्षण न किया गया कोड



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. तेज़ पायथन MySQL

  2. लारावेल रॉ डीबी से एलोक्वेंट

  3. एक ही टेबल में एकाधिक विकल्प कैसे स्टोर करें?

  4. पेजिनेशन (पिछला | अगला) स्मार्टी के साथ

  5. कॉलम में डिफ़ॉल्ट मान (अभिव्यक्ति) के साथ MYSQL तालिका निर्माण