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

डुप्लिकेट कुंजी त्रुटि में MySQL लॉकिंग

मुझे लगता है कि आप शब्दावली/प्रक्रिया को सरल बना रहे हैं। क्वेरी को पार्स करने के बाद और इसे निष्पादित करने से पहले, इसे आवश्यक ताले प्राप्त करने की आवश्यकता होती है। इस बिंदु पर यह निर्धारित किया जाता है कि:

  • सत्र 1 को अनन्य लॉक मिलता है, क्योंकि यह सम्मिलित हो रहा है और कोई अन्य ताले नहीं हैं
  • सत्र 2 और 3 साझा लॉक के लिए कतारबद्ध हो जाते हैं क्योंकि अनन्य लॉक पहले से ही सत्र 1 द्वारा आयोजित किया जाता है और सत्र 2 और 3 डुप्लिकेट कुंजी त्रुटि में होते हैं

ऊपर के अनुसार, सत्र 2 और 3 साझा ताले के लिए कतारबद्ध हो जाते हैं क्योंकि वे डुप्लिकेट कुंजी त्रुटि में हैं। हालांकि, जब सत्र 1 कुंजी को हटा देता है और अनन्य लॉक जारी करता है, तो अब सत्र 2 और 3 दोनों को साझा ताले दिए जाते हैं। इस बिंदु पर दोनों डालने को पूरा करने के लिए एक विशेष लॉक प्राप्त करने का प्रयास करते हैं। हालांकि, कोई भी नहीं कर सकता, क्योंकि दूसरे के पास पहले से ही साझा लॉक है। इसलिए दोनों में से किसी को भी अनन्य ताला नहीं दिया जाता है और वे गतिरोध कर देते हैं।



  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. मैसकल सर्वर से कनेक्ट नहीं हो सकता; पिड फ़ाइल बना/लिख नहीं सकता

  3. MySQL हमेशा के लिए 'डेटा भेजना' ले रहा है। सरल क्वेरी, ढेर सारा डेटा

  4. Google मेघ SQL में अनुकूलक_खोज_गहराई

  5. मेरे संस्करण django-mptt को अपग्रेड करने के बाद यह डेटाबेस माइग्रेशन त्रुटि क्यों है?