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

MySQL-এ একাধিক রেকর্ড একসাথে ইনসার্ট করা (Batch/Multiple Insert) VALUES() কমা দিয়ে


MySQL-এ একক INSERT স্টেটমেন্টে VALUES() কমা-সেপারেটেড ব্যবহার করে ব্যাচ ইনসার্ট

একাধিক রেকর্ড একসাথে দ্রুত ইনসার্ট করতে (Batch Insert) VALUES ক্লজে প্রতিটি রোয়ের মান প্যারেনথেসিসে দিয়ে কমা দিয়ে আলাদা করা হয়। এটি আলাদা আলাদা INSERT কমান্ড চালানোর চেয়ে অনেক দ্রুত এবং অ্যাটমিক।

সিনট্যাক্স

INSERT INTO yourTableName (col1, col2, ...) 
VALUES (val1, val2, ...), (val1, val2, ...), ..., (val1, val2, ...);

উদাহরণ

টেবিল তৈরি

mysql> CREATE TABLE addMultipleValues (Counter INT NOT NULL);

ব্যাচ ইনসার্ট (১ থেকে ১০)

mysql> INSERT INTO addMultipleValues VALUES (1), (2), (3), (4), (5), (6), (7), (8), (9), (10);
Query OK, 10 rows affected (0.27 sec)
Records: 10  Duplicates: 0  Warnings: 0

ফলাফল যাচাই

mysql> SELECT * FROM addMultipleValues;
+---------+
| Counter |
+---------+
| 1       |
| 2       |
| 3       |
| 4       |
| 5       |
| 6       |
| 7       |
| 8       |
| 9       |
| 10      |
+---------+

সুবিধা:

  • নেটওয়ার্ক রাউন্ড-ট্রিপ কম (১ কোয়েরি)
  • ট্রানজ্যাকশন লগ একবার লিখা হয়
  • বাল্ক লোডিং-এ খুব দ্রুত
  • LOAD DATA INFILE আরও দ্রুত বড় ডেটাসেটের জন্য

সীমাবদ্ধতা: max_allowed_packet সাইজের অধিক বড় কোয়েরি হলে স্প্লিট করতে হয়।

  1. MySQL-এ LIMIT ও OFFSET ব্যবহার করে ব্যাচewise রো সিলেক্ট করা

  2. MySQL-এ NOW() এবং INTERVAL ব্যবহার করে সময়ের পার্থক্য বের করুন

  3. MySQL-এ একক INSERT স্টেটমেন্টে একাধিক রো দ্রুত ইনসার্ট করা

  4. MySQL-এ একক কোয়ারি দিয়ে একটি কলামে একাধিক মান কিভাবে ইনসার্ট করবেন?