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

MySQL-এ একসাথে একাধিক রো ইনসার্ট করা

MySQL-এ একই INSERT স্টেটমেন্টে একাধিক রো ইনসার্ট করা যায়, যা পারফরম্যান্সে দ্রুত এবং কোড সংক্ষিপ্ত করে।

সিনট্যাক্স

insert into yourTableName(col1,col2) values(val1,val2),(val1,val2),...N;

উদাহরণ: টেবিল তৈরি এবং একসাথে ৫টি রো ইনসার্ট

mysql> create table DemoTable811( 
    StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY, 
    StudentName varchar(100), 
    StudentAge int 
); 
Query OK, 0 rows affected (0.54 sec)
mysql> insert into DemoTable811(StudentName,StudentAge) values('Chris',21),('Robert',22),('David',20),('Bob',19),('Carol',23); 
Query OK, 5 rows affected (0.14 sec) 
Records: 5  Duplicates: 0  Warnings: 0

সকল রেকর্ড দেখানো

mysql> select * from DemoTable811;
+-----------+-------------+------------+
| StudentId | StudentName | StudentAge |
+-----------+-------------+------------+
| 1         | Chris       | 21         |
| 2         | Robert      | 22         |
| 3         | David       | 20         |
| 4         | Bob         | 19         |
| 5         | Carol       | 23         |
+-----------+-------------+------------+
5 rows in set (0.00 sec)

লाभ

  • দ্রুত: একক নেটওয়ার্ক রাউন্ড-ট্রিপ, কম লগিং ওভারহেড
  • এটমিক: সব রো ইনসার্ট হয় না হলে কোনোটিই হয় না (ট্রানজ্যাকশনের মতো)
  • স্বচ্ছ: কোড পঠনযোগ্য এবং রক্ষণাবেক্ষণ সহজ

সীমাবদ্ধতা

  • max_allowed_packet সাইজের বেশি বড় ইনসার্ট হয় না (ডিফল্ট ৬৪MB)
  • খুব বড় ব্যাচের জন্য চাঙ্কে ভাগ করে ইনসার্ট করুন (যেমন ১০০০ রো প্রতি ব্যাচ)

টিপ: INSERT IGNORE বা ON DUPLICATE KEY UPDATE দিয়ে ডুপ্লিকেট হ্যান্ডলিংও করা যায়।

  1. MySQL-এ UNIQUE কনস্ট্রেইন্ট দিয়ে ডুপ্লিকেট বাদ দিয়ে ইনসার্ট করা

  2. MySQL-এ INSERT INTO SELECT ব্যবহার করে অন্য টেবিল থেকে একাধিক রো একসাথে ইনসার্ট করা

  3. MySQL-এ AUTO_INCREMENT কলাম ছাড়া রেকর্ড ইনসার্ট করা

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