কম্পিউটার

সাংখ্যিক অভিব্যক্তি মূল্যায়নের সময় মাইএসকিউএল কীভাবে ওভারফ্লো পরিচালনা করে?


আমরা জানি যে মাইএসকিউএল একটি ত্রুটি তৈরি করবে যদি সাংখ্যিক এক্সপ্রেশনের মূল্যায়নের সময় ওভারফ্লো ঘটে। উদাহরণস্বরূপ, সবচেয়ে বড় স্বাক্ষরিত BIGNT হল 9223372036854775807, তাই নিচের অভিব্যক্তিটি একটি ত্রুটি তৈরি করবে −

mysql> 9223372036854775807 + 1; ERROR 1690 (22003) নির্বাচন করুন:BIGINT মান '(9223372036854775807+1)'-এ সীমার বাইরে 

MySQL নিম্নলিখিত উপায়ে এই ধরনের ওভারফ্লো পরিচালনা করতে পারে:

মূল্যকে আনসাইনড-এ রূপান্তর করে

MySQL নিম্নরূপ −

mysql> CAST নির্বাচন করুন (9223372036854775807 আনসাইনড হিসাবে) +1;+------------------------------------------------ --------+| CAST(9223372036854775807 আনসাইনড) +1 |+----------------------------------------- --+| 9223372036854775808 |+--------------------------------------------+1 সারি সেটে (0.07 সেকেন্ড)

সঠিক-মান পাটিগণিত ব্যবহার করে

MySQL পূর্ববর্তী অভিব্যক্তি পরিচালনা করতে সঠিক-মানের গাণিতিক ব্যবহার করতে পারে। কারণ ওভারফ্লো ঘটে অপারেন্ডের পরিসরের উপর নির্ভর করে। উদাহরণস্বরূপ, উপরের গণনাটি নিম্নরূপ −

হিসাবে দশমিক মান ব্যবহার করে করা যেতে পারে
mysql> নির্বাচন করুন 9223372036854775807.0 + 1;+---------------+| 9223372036854775807.0 + 1 |+-----------------------------------------+| 9223372036854775808.0 |+----------------------------+1 সারি সেটে (0.01 সেকেন্ড)

  1. কিভাবে স্প্রিং বুট স্থানীয় হোস্ট মাইএসকিউএল সংযোগ করে

  2. পাইথনে কিভাবে \B রেগুলার এক্সপ্রেশন কাজ করে?

  3. পাইথনে কিভাবে [\d+] রেগুলার এক্সপ্রেশন কাজ করে?

  4. রেল কিভাবে রত্ন হ্যান্ডেল করে?