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

यदि मौजूद है तो MySQLdb अजगर कॉलम पर पंक्ति या वेतन वृद्धि की संख्या डालें

@johnthexii द्वारा प्रदान किए गए लिंक का उपयोग करके यहां एक दृष्टिकोण दिया गया है (डेमो ) (यह सिर्फ MySQL का उपयोग कर रहा है, इसलिए यह पायथन विशिष्ट नहीं है)

CREATE TABLE UserNames (`username` varchar(35) unique, `duplicates` int);

INSERT INTO UserNames (`username`, `duplicates`)
 VALUES ('stackoverflow.com', 0);

INSERT INTO UserNames (`username`, `duplicates`)
 VALUES ('dba.stackexchange.com/', 0)
 ON DUPLICATE KEY UPDATE `duplicates` = `duplicates`+1;

INSERT INTO UserNames (`username`, `duplicates`)
 VALUES ('stackoverflow.com', 0)
 ON DUPLICATE KEY UPDATE `duplicates` = `duplicates`+1;

यहाँ क्या हो रहा है इसका एक विश्लेषण दिया गया है:username फ़ील्ड को अद्वितीय के रूप में चिह्नित किया गया है, इसलिए मौजूदा उपयोगकर्ता नाम के साथ रिकॉर्ड डालने का कोई भी प्रयास डेटाबेस स्तर पर विफल हो जाएगा। फिर INSERT स्टेटमेंट में एक अतिरिक्त है

ON DUPLICATE KEY UPDATE `duplicates` = `duplicates`+1

यह MySQL को बताता है कि INSERT को विफल करने के बजाय केवल duplicates कॉलम और एक से वृद्धि। जब आप तीन INSERT कमांड चलाते हैं तो आपको दो रिकॉर्ड दिखाई देंगे, stackoverflow.com एक duplicates है 1 का मान, जबकि dba.stackexchange.com एक duplicates है 0 का मान।




  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. JSON ऑब्जेक्ट बनाते समय कॉलम नामों का उपयोग कैसे करें, पायथन

  3. मैं एसक्यूएल के साथ एक टेबल पैरेंट चाइल्ड रिलेशन का उपयोग करके एक पदानुक्रमित पेड़ की केवल एक पीढ़ी का चयन कैसे करूं?

  4. PHP MySQL गणना क्वेरी परिणाम स्ट्रिंग है, पूर्णांक नहीं

  5. उन पंक्तियों का चयन करना जहाँ PHP PDO तैयार कथनों और MySQL का उपयोग करके कोई फ़ील्ड रिक्त है