Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> MySql

संख्यात्मक अभिव्यक्ति मूल्यांकन के दौरान MySQL अतिप्रवाह को कैसे संभालता है?

<घंटा/>

जैसा कि हम जानते हैं कि संख्यात्मक अभिव्यक्तियों के मूल्यांकन के दौरान अतिप्रवाह होने पर MySQL एक त्रुटि उत्पन्न करेगा। उदाहरण के लिए, सबसे बड़ा हस्ताक्षरित BIGNT 9223372036854775807 है, इसलिए निम्न व्यंजक एक त्रुटि उत्पन्न करेगा -

mysql> Select 9223372036854775807 + 1;
ERROR 1690 (22003): BIGINT value is out of range in '(9223372036854775807+1)'

MySQL इस तरह के ओवरफ्लो को निम्नलिखित तरीकों से हैंडल कर सकता है:

मूल्य को अहस्ताक्षरित में परिवर्तित करके

MySQL निम्न प्रकार से मानों को अहस्ताक्षरित में परिवर्तित करके इस तरह के संचालन को सक्षम बनाता है -

mysql> Select CAST(9223372036854775807 AS UNSIGNED) +1;
+------------------------------------------+
| CAST(9223372036854775807 AS UNSIGNED) +1 |
+------------------------------------------+
|                      9223372036854775808 |
+------------------------------------------+
1 row in set (0.07 sec)

सटीक-मूल्य अंकगणित का उपयोग करके

MySQL पूर्ववर्ती अभिव्यक्ति को संभालने के लिए सटीक-मान अंकगणित का उपयोग कर सकता है। ऐसा इसलिए है क्योंकि ओवरफ्लो होता है ऑपरेंड की सीमा पर निर्भर करता है। उदाहरण के लिए, उपरोक्त गणना निम्न प्रकार से DECIMAL मान का उपयोग करके की जा सकती है -

mysql> Select 9223372036854775807.0 + 1;
+---------------------------+
| 9223372036854775807.0 + 1 |
+---------------------------+
|     9223372036854775808.0 |
+---------------------------+
1 row in set (0.01 sec)

  1. स्प्रिंग बूट लोकलहोस्ट MySQL को कैसे जोड़ता है

    इसके लिए application.properties का उपयोग करें - spring.datasource.username=yourMySQLUserNamespring.datasource.password=yourMySQLPasswordspring.datasource.url=jdbc:mysql://localhost:3306/yoruDatabaseNamespring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver ऊपर दिए गए सिंटैक्स को समझने के लिए

  1. पाइथन में [\d+] रेगुलर एक्सप्रेशन कैसे काम करता है?

    निम्न कोड दिखाता है कि रेगुलर एक्सप्रेशन [\d+] दिए गए स्ट्रिंग पर क्या करता है [\d+] रेगुलर एक्सप्रेशन एक अंक (0-9) या + वर्ण को दर्शाता है उदाहरण import re result = re.findall(r'[\d+]', 'Taran123tula+456') print result आउटपुट ['1', '2', '3', '+', 

  1. रेल रत्नों को कैसे संभालती है?

    कुछ हफ्ते पहले, मैंने लिखा था कि रूबीजम्स रूबी के लोड पथ को कैसे प्रबंधित करता है। लेकिन रेल सीधे रूबीगेम्स का उपयोग नहीं करती है - यह अपने रत्नों को प्रबंधित करने के लिए बंडलर का उपयोग करती है। यदि आप नहीं जानते कि बंडलर कैसे काम करता है, तो जिस तरह से रत्न रेल में खींचे जाते हैं, वह थोड़ा भी लग स