काम हम सेटिंग्स जो अनिवार्य रूप से निम्नलिखित कॉलम शामिल धारण करने के लिए एक मेज के लिए अद्यतन जोड़ा लेकिन दुर्लभ अवसरों पर, सेटिंग्स हटा दी जाती हैं। दुर्भाग्यवश इसका अर्थ यह है कि किसी भी स्क्रिप्ट जो पहले इस मान को अपडेट कर सकती है, इस तथ्य के बावजूद ऐसा करेगी कि अद्यतन परिणाम "0 rows updated
" में हैं और अप्रत्याशित व्यवहार की ओर जाता है।रोकें न के बराबर पंक्तियों
इस स्थिति को हाल ही में एक रिग्रेशन टेस्ट विफलता द्वारा उठाया गया था, लेकिन केवल जांच के बाद कि सिस्टम में डेटा अलग क्यों था।
तो मेरा प्रश्न है: क्या शून्य पंक्तियों में अद्यतन परिणाम अपडेट होने पर त्रुटि स्थिति उत्पन्न करने का कोई तरीका है?
यहां कुछ विकल्प मैं के बारे में सोचा है, लेकिन उनमें से कोई वास्तव में वह सब वांछित हैं:
- PL/SQL आवरण जो विफल रहा है अद्यतन देखती है और एक अपवाद फेंकता है।
- आदर्श नहीं है क्योंकि यह किसी भी/स्क्रिप्ट को मैन्युअल रूप से अद्यतन करने से रोकता नहीं है।
- तालिका पर एक ट्रिगर जो अपवाद फेंकता है।
- ट्रिगर्स को चरणबद्ध करने की हमारी वर्तमान नीति के खिलाफ जाता है।
- हर बार एक सेटिंग को हटाया जाता है और अप्रचलित सेटिंग्स की सूची बनाए रखने (यदि बहिष्करण कर रहा है) ट्रिगर को अद्यतन करने की आवश्यकता होती है।
- में उत्परिवर्तनीय तालिका के साथ समस्या हो सकती है (यदि वर्तमान में कौन सी सेटिंग मौजूद हैं, तो पूछताछ करके शामिल करना)।
कैसे 0 पंक्तियों की एक अद्यतन si को जन्म दे सकता अद्यतन कर सकते हैं ट्यूशन कि डेटा अलग हैं? –
@TheNail प्रश्न में सेटिंग एक समय देरी थी। पुराने कोड में मान अपडेट किया गया था और डेटा में दी गई देरी शामिल थी। नए कोड में यह नहीं था। Ergo रिग्रेशन। यह सेटिंग तब भी होती जब सेटिंग नियंत्रित हो रही थी कि कुछ फीचर चालू है या नहीं। –