डेटाबेस लेनदेन के साथ काम करते समय, संभावित स्थितियों (यदि कोई है) क्या हैं जो लेनदेन में अंतिम COMMIT
स्टेटमेंट विफल होने का कारण बनते हैं, मानते हैं कि लेनदेन के भीतर सभी बयान पहले ही बिना किसी मुद्दे के निष्पादित किए गए हैं?क्या कोई COMMIT कथन (SQL में) कभी विफल हो सकता है? कैसे?
उदाहरण के लिए ... मान लीजिए कि आप कुछ two-phase या three-phase commit protocol जहां बयान के एक झुंड करते हैं, तो जब यह ठीक है अंत में लेन-देन के लिए प्रतिबद्ध करने के लिए कुछ गुरु प्रक्रिया में बताने के लिए के लिए प्रतीक्षा डालते हैं:
-- <initial handshaking stuff>
START TRANSACTION;
-- <Execute a bunch of SQL statements>
-- <Inform master of readiness to commit>
-- <Time passes... background transactions happening while we wait>
-- <Receive approval to commit from master (finally!)>
COMMIT;
यदि आपका कोड उस अंतिम COMMIT कथन पर जाता है और इसे आपके डीबीएमएस पर भेजता है, तो क्या आपको उस वक्तव्य में कभी भी एक त्रुटि (विशिष्टता समस्या, डेटाबेस पूर्ण, आदि) मिल सकती है? क्या त्रुटियां? क्यूं कर? वे कैसे दिखाई देते हैं? क्या यह आपके द्वारा चलाए जाने वाले डीबीएमएस के आधार पर भिन्न होता है?
यदि यह होमवर्क है तो कृपया इसे इस तरह टैग करें। –
@ बॉब जार्विस: वाह। मुझे बहुत छोटा महसूस करने के लिए धन्यवाद! – Russ
होमवर्क आयु का कार्य नहीं है। :-) –