MySQL-এ ERROR 1054 (42S22): Unknown column '...' in 'field list' এরর তখন হয় যখন VARCHAR বা স্ট্রিং টাইপ কলামে মান ইনসার্ট করার সময় একক উদ্ধৃতি চিহ্ন (') ভুলে যাওয়া হয়। MySQL তখন সেটিকে কলাম নাম বলে মনে করে।
এরর উদাহরণ
mysql> INSERT INTO DemoTable798 VALUES (100, Adam); ERROR 1064 (42S22): Unknown column 'Adam' in 'field list'
এখানে Adam কোটেশন ছাড়া লেখা হয়েছে, তাই MySQL এটিকে কলাম নাম ধরে ফেলেছে।
সমাধান: একক উদ্ধৃতি চিহ্ন ব্যবহার করুন
mysql> INSERT INTO DemoTable798 VALUES (100, 'Adam');
টেবিল তৈরি ও সঠিক ইনসার্ট
mysql> CREATE TABLE DemoTable798 (StudentId INT, StudentName VARCHAR(100)); Query OK, 0 rows affected (0.51 sec)
mysql> INSERT INTO DemoTable798 VALUES (100, 'Adam'); Query OK, 1 row affected (0.16 sec) mysql> INSERT INTO DemoTable798 VALUES (101, 'Chris'); Query OK, 1 row affected (0.19 sec) mysql> INSERT INTO DemoTable798 VALUES (102, 'Robert'); Query OK, 1 row affected (0.16 sec) mysql> INSERT INTO DemoTable798 VALUES (103, 'Carol'); Query OK, 1 row affected (0.16 sec)
রেকর্ড দেখানো
mysql> SELECT * FROM DemoTable798;
আউটপুট:
+-----------+-------------+ | StudentId | StudentName | +-----------+-------------+ | 100 | Adam | | 101 | Chris | | 102 | Robert | | 103 | Carol | +-----------+-------------+ 4 rows in set (0.00 sec)
অন্যান্য কারণ
- কলাম নাম ভুল লিখা (টাইপো)۔
- কলাম টেবিলে নেই (ALTER TABLE ADD COLUMN ভুল হয়েছে)।
- টেবিল নাম ভুল (ভুল ডেটাবেস/টেবিল)۔
- রিজার্ভড কিওয়ার্ড কলাম নামে ব্যবহার করা কিন্তু ব্যাকটিক না দেওয়া।
ডিবাগিং টিপস
DESC table_name; SHOW COLUMNS FROM table_name; SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'table_name';