MySQL-এ একই INSERT স্টেটমেন্টে একাধিক রো ইনসার্ট করতে VALUES ক্লজে কমা-সেপারেটেড ভ্যালু লিস্ট দিন।
সিনট্যাক্স
INSERT INTO yourTableName(yourColumnName)
VALUES('value1'), ('value2'), ('value3'), ...;
উদাহরণ দিয়ে বুঝি
টেবিল তৈরি করুন:
mysql> CREATE TABLE InsertMultipleDemo (
-> Id INT NOT NULL AUTO_INCREMENT,
-> UserName VARCHAR(10),
-> UserRole VARCHAR(20),
-> PRIMARY KEY(Id)
-> );
Query OK, 0 rows affected (3.14 sec)
একসাথে ৪টি রো ইনসার্ট করুন (শুধু UserRole কলামে)
mysql> INSERT INTO InsertMultipleDemo(UserRole)
-> VALUES('Admin'), ('Author'), ('Driver'), ('Guest');
Query OK, 4 rows affected (0.17 sec)
Records: 4 Duplicates: 0 Warnings: 0
ফলাফল দেখুন:
mysql> SELECT UserRole FROM InsertMultipleDemo;
+----------+
| UserRole |
+----------+
| Admin |
| Author |
| Driver |
| Guest |
+----------+
4 rows in set (0.00 sec)
লाभ:
- নেটওয়ার্ক রাউন্ড-ট্রিপ কম (একটি কোয়েরিতে বহু রো)
- ট্রানজ্যাকশন ওভারহেড কম
- बल্ক ইনসার্টের চেয়ে সহজ এবং ফাস্ট
নোট
AUTO_INCREMENTকলাম (Id) অটোমেটিক ভরা হবে- অন্যান্য কলাম (UserName) ডিফল্ট NULL থাকবে
- MySQL-এ একসাথে হাজার হাজার রো ইনসার্ট করা যায় (max_allowed_packet লিমিট পর্যন্ত)
- বড় ডেটাসেটের জন্য
LOAD DATA INFILEদ্রুততম