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

डुप्लीकेट कुंजी अद्यतन प्रश्न पर MYSQL

ON DUPLICATE KEY UPDATE बस SET करता है डुप्लीकेट कुंजी के मामले में आपके द्वारा दिए गए विवरण। यह अलग-अलग कॉलम मानों की तुलना नहीं करता है और केवल अलग-अलग लोगों को अपडेट करता है। ऐसा लगता है कि जब तक आपके पास UNIQUE KEY के रूप में परिभाषित उचित कॉलम है, तब तक आप जो करना चाहते हैं, उसके लिए यह काम करेगा। या PRIMARY KEY .

हालांकि, मैं सामान्य रूप से जो करता हूं वह सम्मिलित करता है और फिर त्रुटि पकड़ता है और यदि मुझे आवश्यकता हो तो एक अलग क्रिया करता है। डुप्लिकेट होने पर 2 प्रश्न जारी करने का इसका नकारात्मक पक्ष है, लेकिन मेरी राय में यह बहुत अधिक रखरखाव योग्य है।

उदाहरण:

$db = new PDO($dsn, $user, $pass);
$stmt = $db->prepare('INSERT INTO some_tbl (col1,col2,col3) VALUES (?,?,?)');
$values = array('Col 1 value','Col 2 Value', 'Col 3 Value');
try {
  $db->execute($values);
} catch (PDOException $e) {
  if($e->getCode() == 23000){
    // dupe key do some other action whether update or otherwise
  } else {
    // rethrow non dupe errors
    throw $e;
  }
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. टेबल बनाने के लिए क्वेरी बनाएं

  2. डेटाबेस mysql में समानार्थक शब्दों को संग्रहीत और पुनर्प्राप्त करने का सबसे अच्छा तरीका

  3. इस डेटा को MySQL स्कीमा में स्टोर करने का सही तरीका क्या है?

  4. MySQL स्थापित करें:त्रुटि:मणि देशी एक्सटेंशन बनाने में विफल

  5. MySQL गणितीय कार्य (पूरी सूची)