কম্পিউটার

MySQL ERROR 1406 এর জন্য ফিক্স করুন:কলামের জন্য ডেটা খুব দীর্ঘ" কিন্তু এটি হওয়া উচিত নয়?


আপনি অনুমোদিত সীমার চেয়ে বেশি ডেটা সেট করার চেষ্টা করলে এই ত্রুটি ঘটতে পারে। উদাহরণ স্বরূপ, আপনি বিট টাইপ কলামে একটি স্ট্রিং সংরক্ষণ করতে পারবেন না কারণ varchar বা স্ট্রিং বিট ডেটা টাইপের থেকে বেশি আকার নেয়৷

বিট টাইপ কলামের জন্য আপনাকে নিম্নলিখিত সিনট্যাক্স ব্যবহার করতে হবে:

anyBitColumnName= b ‘1’
OR
anyBitColumnName= b ‘0’

উপরের সিনট্যাক্স বুঝতে, আসুন একটি টেবিল তৈরি করি। একটি টেবিল তৈরি করার প্রশ্নটি নিম্নরূপ:

mysql> create table IncasesensitiveDemo
   -> (
   -> Id int NOT NULL AUTO_INCREMENT,
   -> Name varchar(10),
   -> PRIMARY KEY(Id)
   -> );
Query OK, 0 rows affected (0.70 sec)

সন্নিবেশ কমান্ড ব্যবহার করে টেবিলে কিছু রেকর্ড সন্নিবেশ করান। রেকর্ড সন্নিবেশ করার প্রশ্নটি নিম্নরূপ:

mysql> insert into ErrorDemo(Name,isStudent) values('John',1);
Query OK, 1 row affected (0.18 sec)
mysql> insert into ErrorDemo(Name,isStudent) values('Sam',0);
Query OK, 1 row affected (0.21 sec)
mysql> insert into ErrorDemo(Name,isStudent) values('Mike',0);
Query OK, 1 row affected (0.16 sec)
mysql> insert into ErrorDemo(Name,isStudent) values('Larry',1);
Query OK, 1 row affected (0.23 sec)
mysql> insert into ErrorDemo(Name,isStudent) values('Carol',1);
Query OK, 1 row affected (0.11 sec)
mysql> insert into ErrorDemo(Name,isStudent) values('Robert',0);
Query OK, 1 row affected (0.17 sec)
mysql> insert into ErrorDemo(Name,isStudent) values('James',1);
Query OK, 1 row affected (0.18 sec)
mysql> insert into ErrorDemo(Name,isStudent) values('Bob',1);
Query OK, 1 row affected (0.19 sec)
mysql> insert into ErrorDemo(Name,isStudent) values('David',1);
Query OK, 1 row affected (0.15 sec)
mysql> insert into ErrorDemo(Name,isStudent) values('Ricky',0);
Query OK, 1 row affected (0.17 sec)

সিলেক্ট স্টেটমেন্ট ব্যবহার করে টেবিল থেকে সমস্ত রেকর্ড প্রদর্শন করুন। প্রশ্নটি নিম্নরূপ:

mysql> select *from ErrorDemo;

নিম্নলিখিত আউটপুট:

+----+--------+-----------+
| Id | Name   | isStudent |
+----+--------+-----------+
|  1 | John   |           |
|  2 | Sam    |           |
|  3 | Mike   |           |
|  4 | Larry  |           |
|  5 | Carol  |           |
|  6 | Robert |           |
|  7 | James  |           |
|  8 | Bob    |           |
|  9 | David  |           |
| 10 | Ricky  |           |
+----+--------+-----------+
10 rows in set (0.00 sec)

প্রকৃত নমুনা আউটপুট স্ন্যাপশট নিম্নরূপ:

MySQL ERROR 1406 এর জন্য ফিক্স করুন:কলামের জন্য ডেটা খুব দীর্ঘ  কিন্তু এটি হওয়া উচিত নয়?

উপরে আলোচনা করা ত্রুটি নিম্নলিখিত. এটি নীচের প্রশ্নে তৈরি হয়:

mysql> update ErrorDemo set isStudent='1' where Id=9;
ERROR 1406 (22001): Data too long for column 'isStudent' at row 1

উপরের ত্রুটি এড়াতে, আপনাকে '1' এর আগে b উপসর্গ করতে হবে। এখন প্রশ্নটি নিম্নরূপ:

mysql> update ErrorDemo set isStudent=b'1' where Id=9;
Query OK, 0 rows affected (0.00 sec)
Rows matched: 1 Changed: 0 Warnings: 0

সিলেক্ট স্টেটমেন্ট ব্যবহার করে আবার টেবিল রেকর্ড চেক করুন। প্রশ্নটি নিম্নরূপ:

mysql> select *from ErrorDemo;

নিম্নলিখিত আউটপুট:

+----+--------+-----------+
| Id | Name   | isStudent |
+----+--------+-----------+
|  1 | John   |           |
|  2 | Sam    |           |
|  3 | Mike   |           |
|  4 | Larry  |           |
|  5 | Carol  |           |
|  6 | Robert |           |
|  7 | James  |           |
|  8 | Bob    |           |
|  9 | David  |           |
| 10 | Ricky  |           |
+----+--------+-----------+
10 rows in set (0.00 sec)

প্রকৃত নমুনা আউটপুট স্ন্যাপশট নিম্নরূপ:

MySQL ERROR 1406 এর জন্য ফিক্স করুন:কলামের জন্য ডেটা খুব দীর্ঘ  কিন্তু এটি হওয়া উচিত নয়?

ছাত্র কলামটি দেখুন৷

এখন আমরা 0 মান দিয়ে একই আইডি আপডেট করব। এটি সংশ্লিষ্ট আইডি সহ একটি ফাঁকা মান দেবে। প্রশ্নটি নিম্নরূপ:

mysql> update ErrorDemo set Name='Maxwell', isStudent=b'0' where Id=9;
Query OK, 1 row affected (0.16 sec)
Rows matched: 1 Changed: 1 Warnings: 0

উপরে আপডেট করা নির্দিষ্ট সারির রেকর্ড পরীক্ষা করুন। এখানে আইডি 9। এখন সারিটি রেকর্ড আইডি 9 দিয়ে আপডেট করা হয়েছে। প্রশ্নটি নিম্নরূপ:

mysql> select *from ErrorDemo where Id=9;

নিম্নলিখিত আউটপুট:

+----+---------+-----------+
| Id | Name    | isStudent |
+----+---------+-----------+
|  9 | Maxwell |           |
+----+---------+-----------+
1 row in set (0.00 sec)

  1. MySQL লাইককে MySQL IN হিসাবে প্রয়োগ করার জন্য প্রশ্ন?

  2. জাভা মাইএসকিউএল কানেকশনে কানেক্টিভিটি ত্রুটি ঠিক করবেন কানেক্টরকে ক্লাস পাথে সেট করার জন্য?

  3. নির্দিষ্ট কলাম মানের জন্য একটি একক MySQL ক্যোয়ারীতে একাধিক গণনা পান

  4. একটি একক MySQL ক্যোয়ারীতে সমস্ত কলামের নামের জন্য 'অ্যালিয়াস' সেট করুন