কম্পিউটার টিউটোরিয়াল

MySQL সংখ্যাসূচক এক্সপ্রেশন আセスমেন্টের সময় ওভারফ্লো কীভাবে হ্যান্ডেল করে?


আমরা জানি 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)

  1. Spring Boot-এ application.properties দিয়ে লোকাল MySQL কানেক্ট করা

  2. পাইথন রেগুলার এক্সপ্রেশনে \B (নন-ওয়ার্ড বাউন্ডারি) এর কাজ

  3. পাইথন রেগুলার এক্সপ্রেশনে [\d+] প্যাটার্নের কাজ

  4. রেইলসে জেম ম্যানেজমেন্ট: Bundler এবং RubyGems কীভাবে একসাথে কাজ করে