MySQL-এ INSERT স্টেটমেন্টে কলামের নাম না লিখলেও মান ইনসার্ট করা যায়, শর্ত হলো সব কলামের জন্য ক্রমানুসারে মান দিতে হবে।
সিনট্যাক্স
insert into yourTableName values(val1, val2, val3, ... N);
উদাহরণ: টেবিল তৈরি (Id NOT NULL AUTO_INCREMENT)
mysql> create table DemoTable862(
Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
FirstName varchar(100),
Age int
);
Query OK, 0 rows affected (0.68 sec)
কলাম নাম ছাড়া ইনসার্ট (Id-এর জন্য NULL দেওয়া)
mysql> insert into DemoTable862 values(NULL,'Chris',23); Query OK, 1 row affected (0.10 sec) mysql> insert into DemoTable862 values(NULL,'Robert',21); Query OK, 1 row affected (0.18 sec) mysql> insert into DemoTable862 values(NULL,'Mike',24); Query OK, 1 row affected (0.09 sec) mysql> insert into DemoTable862 values(NULL,'Sam',25); Query OK, 1 row affected (0.12 sec) mysql> insert into DemoTable862 values(NULL,'Bob',26); Query OK, 1 row affected (0.14 sec)
সকল রেকর্ড দেখানো
mysql> select * from DemoTable862;
+----+-----------+------+ | Id | FirstName | Age | +----+-----------+------+ | 1 | Chris | 23 | | 2 | Robert | 21 | | 3 | Mike | 24 | | 4 | Sam | 25 | | 5 | Bob | 26 | +----+-----------+------+ 5 rows in set (0.00 sec)
ব্যাখ্যা
IdকলামNOT NULL AUTO_INCREMENT PRIMARY KEYNULLইনসার্ট করলে অটো-ইনক্রিমেন্ট স্বয়ংক্রিয়ভাবে ১, ২, ৩... বসায়- কলাম ক্রম: Id, FirstName, Age — মানগুলো একই ক্রমে দেওয়া হয়েছে
সতর্কতা ও সেরা অনুশীলন
⚠️ সুপারিশ: প্রোডাকশন কোডে সবসময় কলাম নাম লিখুন:
INSERT INTO DemoTable862 (FirstName, Age) VALUES ('Chris', 23);
কলাম নাম লিখার লাভ
- রক্ষণাবেক্ষণ: টেবিল কাঠামো বদললে (কলাম যোগ/বদলি) কোড ব্রেক হয় না
- পঠনযোগ্যতা: কোন মান কোন কলামে যায় তা স্পষ্ট
- নিরাপত্তা: সেনসিটিভ কলাম (password_hash, created_at) অটো-হ্যান্ডল হয়
- ফ্লেক্সিবিলিটি: কেবল কিছু কলামে মান দেওয়া যায়
যখন কলাম নাম ছাড়া ব্যবহার করা যায়
- দ্রুত টেস্ট/প্রোটোটাইপিং
- একক স্ক্রিপ্ট/মাইগ্রেশন (টেবিল কাঠামো ফিক্সড)
- সব কলামে মান দিতে হলে (AUTO_INCREMENT-এ NULL/DEFAULT)