আমরা জানি MySQL সংখ্যাসূচক এক্সপ্রেশন আセスমেন্টের সময় ওভারফ্লো হলে এরর তৈরি করে। উদাহরণস্বরূপ, সর্বোচ্চ সাইনড BIGINT হল 9223372036854775807, তাই নিচের এক্সপ্রেশনটি এরর তৈরি করবে −
mysql> Select 9223372036854775807 + 1; ERROR 1690 (22003): BIGINT value is out of range in '(9223372036854775807+1)'
MySQL এই ধরনের ওভারফ্লো নিচের উপায়গুলোতে হ্যান্ডেল করতে পারে:
মানকে UNSIGNED-এ রূপান্তর করে
MySQL মানগুলাকে UNSIGNED-এ রূপান্তর করে এই ধরনের অপারেশন সক্ষম করে নিম্নরূপ −
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)