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

MySQL ENUM-এ অবৈধ মান ইনসার্ট করলে কী হয়?

স্ট্রিক্ট SQL mode ডিজেবল থাকলে ENUM-এ অবৈধ মান (যে মান অনুমোদিত এনুমারেশন তালিকার মধ্যে নেই) ইনসার্ট করলে MySQL এরর না দিয়ে খালি স্ট্রিং ইনসার্ট করে। কিন্তু স্ট্রিক্ট SQL mode ইনেবল থাকলে অবৈধ মান ইনসার্ট করলে MySQL এরর থ্রো করে।

উদাহরণ

স্ট্রিক্ট SQL mode ডিজেবল করেই অবৈধ স্ট্রিং ইনসার্ট করা:

mysql> INSERT INTO result(id, name, grade) VALUES(100, 'Gaurav', 'abcd');
Query OK, 1 row affected, 1 warning (0.03 sec)
mysql> SELECT * FROM result;
+-----+--------+-------+
| Id  | Name   | Grade |
+-----+--------+-------+
| 100 | Gaurav |       |
+-----+--------+-------+
1 row in set (0.00 sec)

উপরের কোয়েরিতে MySQL অবৈধ স্ট্রিংর জায়গায় খালি স্ট্রিং ইনসার্ট করেছে এবং কোনো এরর দিয়েছে না।

নিচের কোয়েরি দিয়ে সূচক নম্বর চেক করলে ০ পাওয়া যায়, যা নিশ্চিত করে যে ইনসার্ট করা মান খালি স্ট্রিং (কারণ খালি স্ট্রিংর সূচক সার্বদা ০):

mysql> SELECT Grade + 0 FROM result;
+-----------+
| Grade + 0 |
+-----------+
| 0         |
+-----------+
1 row in set (0.00 sec)

এখন SQL স্ট্রিক্ট mode ইনেবল করলে (নিচের কোয়েরি অনুযায়ী) MySQL অবৈধ স্ট্রিং ইনসার্ট করলে এরর থ্রো করে:

mysql> SET SQL_MODE = 'TRADITIONAL';
Query OK, 0 rows affected (0.00 sec)
mysql> INSERT INTO result(id, name, grade) VALUES(101, 'Saurabh', 'abcd');
ERROR 1265 (01000): Data truncated for column 'Grade' at row 1
  1. Java ব্যবহার করে MySQL কলামে DATE ইনসার্ট করার পদ্ধতি

  2. MySQL-এ IF() ফাংশন ব্যবহার করে কোয়েরির ভিতরে শর্তসাপেক্ষ লজিক বাস্তবায়ন করুন

  3. MySQL টেবিলে JSON ডেটা ইনসার্ট করার পদ্ধতি

  4. Java-এ PreparedStatement ব্যবহার করে MySQL-এ NULL মান ইনসার্ট করা (setNull)