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

कैसे Django में अद्वितीय जांच के साथ दौड़ की स्थिति से बचने के लिए?

मानक तरीका यह है कि इसे संभालना नहीं है, जैसे:

  1. आपके मामले में विफलता की संभावना 0 के करीब है;
  2. विफलता की गंभीरता बहुत कम है।

अगर, किसी कारण से, आपको यह सुनिश्चित करना है कि समस्या नहीं होगी, तो आप अपने दम पर हैं।

मैंने घटनाओं के अनुक्रम का विस्तार से विश्लेषण नहीं किया है, लेकिन मुझे लगता है कि SERIALIZABLE अलगाव स्तर का उपयोग करने से वास्तव में मदद नहीं मिलेगी, यह केवल IntegrityError का कारण होगा। (या DatabaseError ) एक अलग जगह पर उठाया जाना।

ओवरराइडिंग Model._perform_unique_checks मुझे एक बुरा विचार लगता है, यदि संभव हो तो आप बंदर पैचिंग से दूर रहें (और यहां यह है संभव)।

जहां तक ​​संभावित त्रुटियों को रोकने के लिए टेबल लॉक का उपयोग करने की बात है... ठीक है, मैं बहुत बड़ा प्रशंसक नहीं हूं इसलिए मैं इसकी अनुशंसा भी नहीं कर सकता।

इसी तरह के प्रश्न का एक अच्छा उत्तर यहां दिया गया है:https://stackoverflow.com/a/3523439/176186 - मैं सहमत हूं कि IntegrityError . को पकड़ना और फिर से प्रयास करना शायद समस्या से निपटने का सबसे आसान तरीका है।

संपादित करें:मुझे यह मिला:Symfony2 - फॉर्म जमा करने के बाद अद्वितीय बाधा त्रुटि से कैसे उबरें? और मैं @pid के उत्तर से सहमत हूं।



  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. html एक mysql क्वेरी के बाद खाली टैग लौटाकर आकार में तिगुना हो जाता है | कैसे हल करें - लार्वा

  3. MySQL के लिए PDO तैयार स्टेटमेंट का उपयोग करके डेटा की एक सरणी से कई कॉलम में कई मान सम्मिलित करना

  4. MySQL में एक संयोजित स्ट्रिंग में एक सेपरेटर कैसे जोड़ें - CONCAT_WS ()

  5. दो चयन प्रश्नों को मिलाना