सक्षम SQL सख्त मोड के मामले में, पूर्णांक मान के बीच घटाव जिसमें एक अहस्ताक्षरित प्रकार का है, डिफ़ॉल्ट रूप से एक अहस्ताक्षरित परिणाम उत्पन्न करेगा। लेकिन अगर परिणाम नकारात्मक है तो MySQL एक त्रुटि उत्पन्न करता है। इसे निम्न उदाहरण से देखा जा सकता है -
mysql> SET sql_mode = ''; Query OK, 0 rows affected (0.00 sec) mysql> Select CAST(0 AS UNSIGNED) -1; ERROR 1690 (22003): BIGINT UNSIGNED value is out of range in '(cast(0 as unsigned) - 1)'
उपरोक्त क्वेरी के बाद की त्रुटि दर्शाती है कि यह संख्यात्मक अंकगणितीय व्यंजक के बाद एक अतिप्रवाह है।
अब, इसे NO_UNSIGNED_SUBTRACTION SQL मोड को सक्षम करने की मदद से नियंत्रित किया जा सकता है। इस मोड को सक्षम करने के बाद, परिणाम त्रुटि के बजाय -1 होगा।
mysql> Set sql_mode = 'NO_UNSIGNED_SUBTRACTION'; Query OK, 0 rows affected (0.00 sec) mysql> Select CAST(0 AS UNSIGNED) -1; +------------------------+ | CAST(0 AS UNSIGNED) -1 | +------------------------+ | -1 | +------------------------+ 1 row in set (0.00 sec)