सिद्धांत रूप में सब कुछ ठीक होना चाहिए, लेकिन हमेशा ऐसे परिदृश्य होते हैं जब आपका कोड विफल हो सकता है।
उदाहरण के लिए:
a) blind insert
:
INSERT INTO tab_name
VALUES (1, 'b', 'c');
<ब्लॉकक्वॉट> एक ब्लाइंड इंसर्ट तब होता है जब एक INSERT क्वेरी यह निर्दिष्ट नहीं करती है कि कौन से कॉलम सम्मिलित डेटा प्राप्त करते हैं।
यह एक बुरी बात क्यों है?
क्योंकि डेटाबेस स्कीमा बदल सकता है। कॉलम को स्थानांतरित, नाम बदला, जोड़ा या हटाया जा सकता है। और जब वे होते हैं, तो कम से कम तीन चीजों में से एक हो सकता है:
-
क्वेरी विफल हो जाती है। यह सबसे अच्छी स्थिति है। किसी ने लक्ष्य तालिका से एक कॉलम हटा दिया है, और अब डालने के लिए पर्याप्त कॉलम नहीं हैं, या किसी ने डेटा प्रकार बदल दिया है और सम्मिलित प्रकार संगत नहीं है, या इसी तरह। लेकिन कम से कम आपका डेटा दूषित नहीं हो रहा है, और आपको पता भी हो सकता है कि समस्या एक त्रुटि संदेश के कारण मौजूद है।
-
क्वेरी काम करना जारी रखती है, और कुछ भी गलत नहीं है। यह एक मध्य-सबसे खराब स्थिति है। आपका डेटा दूषित नहीं है, लेकिन राक्षस अभी भी बिस्तर के नीचे छिपा हुआ है।
- क्वेरी काम करना जारी रखती है, लेकिन अब कुछ डेटा कहीं डाला जा रहा है जो उससे संबंधित नहीं है। आपका डेटा दूषित हो रहा है।
बी) ORDER BY oridinal
SELECT *
FROM tab
ORDER BY 1;