सक्षम SQL स्ट्रिक्ट मोड के मामले में, पूर्णांक मानों के बीच घटाव जिसमें एक UNSIGNED प्रकार का है, डिफ़ॉल्ट रूप से एक अनसाइन्ड परिणाम उत्पन्न करेगा। लेकिन 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)