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

MySQL আউট-অফ-রেঞ্জ সংখ্যাসূচক মান কীভাবে হ্যান্ডেল করে?


MySQL সংখ্যাসূচক মান যা কলাম ডেটা টাইপের অনুমোদিত রেঞ্জের বাইরে, তার হ্যান্ডলিং SQL মোডের ওপর নির্ভর করে নিম্নরূপ −

(A) সক্রিয় SQL স্ট্রিক্ট মোড - যখন স্ট্রিক্ট SQL মোড সক্রিয় থাকে, আউট-অফ-রেঞ্জ মান ইনসার্ট করলে MySQL এরর ফেরত দেয়। এই ক্ষেত্রে কিছু বা সব মান ইনসার্ট ব্যর্থ হয়।

উদাহরণস্বরূপ, আমরা দুটি কলাম সহ একটি টেবিল তৈরি করেছি যাদের ডেটা টাইপ TINYINT এবং UNSIGNED TINYINT।

mysql> Create table counting(Range1 Tinyint, Range2 Tinyint Unsigned); Query OK, 0 rows affected (0.14 sec)

এখন নিচের কমান্ড দিয়ে স্ট্রিক্ট SQL মোড সক্রিয় করি

mysql> Set SQL_MODE ='traditional'; Query OK, 0 rows affected (0.00 sec)

এখন, যদি আমরা আউট-অফ-রেঞ্জ মান কলামে ইনসার্ট করার চেষ্টা করি, MySQL এরর দেখাবে এবং দুটি ইনসার্টই ব্যর্থ হবে যা নিচের কোয়ারিটিতে চেক করা যাবে −

mysql> Insert into Counting(Range1, Range2) Values(256,256); ERROR 1264 (22003): Out of range value for column 'Range1' at row 1 mysql> Select * from counting; Empty set (0.00 sec)

(B) নিষ্ক্রিয় SQL স্ট্রিক্ট মোড -  যখন স্ট্রিক্ট SQL মোড নিষ্ক্রিয় থাকে, মানটি MySQL দ্বারা সেই কলাম ডেটা টাইপের উপযুক্ত এন্ডপয়েন্ট পর্যন্ত ক্লিপ করা হয় এবং ফলাফল মান সংরক্ষিত হয়। MySQL সতর্কতা দেখায় যা কলাম-অ্যাসাইনমেন্ট রূপান্তরের ফলাফল যা ক্লিপিংয়ের কারণে হয়।

উদাহরণস্বরূপ, যদি SQL স্ট্রিক্ট মোড নিষ্ক্রিয় করে মান ইনসার্ট করা হয়, MySQL সতর্কতা দেখিয়ে মানগুলো উপযুক্ত এন্ডপয়েন্ট পর্যন্ত টরিম করে সংরক্ষণ করবে। নিচের কোয়ারিটিগুলো থেকে এটি বোঝা যাবে −

mysql> Set SQL_MODE = ''; Query OK, 0 rows affected (0.00 sec) mysql> Insert Into Counting(Range1,Range2) values (256,256); Query OK, 1 row affected, 2 warnings (0.02 sec) mysql> Show Warnings; +---------+------+-------------------------------------------------+ | Level   | Code | Message                                         | +---------+------+-------------------------------------------------+ | Warning | 1264 | Out of range value for column 'Range1' at row 1 | | Warning | 1264 | Out of range value for column 'Range2' at row 1 | +---------+------+-------------------------------------------------+ 2 rows in set (0.00 sec) mysql> Select * from Counting; +--------+--------+ | Range1 | Range2 | +--------+--------+ | 127    | 255    | +--------+--------+ 1 row in set (0.00 sec)

  1. MySQL-এ NULL ভ্যালুর সংখ্যা গণনা করুন

  2. MySQL-এ আড়াঝাঁপি (Horizontal) কালামের ভ্যালু গণনা করুন

  3. MySQL-এ BETWEEN অপারেটর ব্যবহার করে রেঞ্জের মধ্যে মান খোঁজা

  4. MySQL-এ GROUP_CONCAT() ব্যবহার করে কলাম মানগুলো CSV ফরম্যাটে দেখানো