MySQL संख्यात्मक मान का संचालन जो कॉलम डेटा प्रकार की अनुमत सीमा से बाहर है, SQL मोड पर निम्नलिखित तरीकों से निर्भर करता है -
(A) सक्षम SQL सख्त मोड - जब सख्त SQL मोड सक्षम होता है, तो MySQL पुट-ऑफ-रेंज मान दर्ज करने पर त्रुटि देता है। इस मामले में, कुछ या सभी मानों का सम्मिलन विफल हो गया।
उदाहरण के लिए, हमने दो स्तंभों के साथ एक तालिका बनाई है जिसमें TINYINT और UNSIGNED TINYINT कॉलम पर उनके डेटा प्रकार के रूप में हैं।
mysql> टेबल काउंटिंग बनाएं (रेंज 1 टिनींट, रेंज 2 टिनींट अहस्ताक्षरित); क्वेरी ओके, 0 पंक्तियाँ प्रभावित (0.14 सेकंड)
अब निम्न कमांड की मदद से, हमने सख्त SQL मोड को सक्षम किया है
mysql> SQL_MODE ='पारंपरिक' सेट करें;क्वेरी ठीक है, 0 पंक्तियाँ प्रभावित (0.00 सेकंड)
अब, यदि हम कॉलम में आउट-ऑफ-रेंज मानों को सम्मिलित करने का प्रयास करेंगे, तो MySQL त्रुटि को दर्शाता है और दोनों सम्मिलन विफल हो गए हैं जिन्हें नीचे दी गई क्वेरी द्वारा जांचा जा सकता है -
mysql> काउंटिंग (रेंज 1, रेंज 2) वैल्यू (256,256) में डालें; त्रुटि 1264 (22003):पंक्ति 1mysql पर कॉलम 'रेंज 1' के लिए सीमा मान से बाहर> गिनती से * चुनें; खाली सेट (0.00 सेकंड)पूर्व>(B) अक्षम SQL सख्त मोड - जब प्रतिबंधात्मक SQL मोड अक्षम किया जाता है, तो मान को MySQL द्वारा उस कॉलम डेटा प्रकार के उपयुक्त समापन बिंदु तक क्लिप किया जाता है और परिणामी मान को संचित करता है। MySQL चेतावनियों को दर्शाता है जो क्लिपिंग के कारण होने वाले कॉलम-असाइनमेंट रूपांतरण का परिणाम है।
उदाहरण के लिए, यदि हम SQL सख्त मोड को अक्षम करने के बाद कॉलम में मान सम्मिलित करेंगे, तो MySQL चेतावनियों को प्रतिबिंबित करेगा और मूल्यों को उपयुक्त अंत-बिंदु तक ट्रिम करने के बाद संग्रहीत करेगा। इसे नीचे दिए गए प्रश्नों से समझा जा सकता है -
mysql> SQL_MODE ='' सेट करें; क्वेरी ठीक है, 0 पंक्तियाँ प्रभावित (0.00 सेकंड) mysql> गिनती में सम्मिलित करें (रेंज 1, रेंज 2) मान (256,256); क्वेरी ठीक है, 1 पंक्ति प्रभावित, 2 चेतावनियाँ (0.02 सेकंड) mysql> चेतावनियां दिखाएं; ---------------------+| स्तर | कोड | संदेश |+------------+----------+---------------------------- -------------------+| चेतावनी | 1264 | पंक्ति 1 पर कॉलम 'रेंज 1' के लिए सीमा मान से बाहर || चेतावनी | 1264 | पंक्ति 1 पर कॉलम 'रेंज 2' के लिए सीमा मूल्य से बाहर |+------+---- -----------------------------+2 पंक्तियाँ सेट में (0.00 सेकंड)mysql> काउंटिंग से * चुनें;+--- -----+----------+| रेंज1 | रेंज 2 |+-----+-----------+| 127 | 255 |+-----------+-----------+1 पंक्ति सेट (0.00 सेकंड) में