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

MySQL-এ UNION ALL এবং INSERT INTO SELECT ব্যবহার করে একক কোয়েরিতে দুটি টেবিলে ডেটা ইনসার্ট করুন

MySQL-এ একই সোর্স থেকে ভিন্ন ভ্যালু দিয়ে একাধিক টেবিলে বা একই টেবিলে একাধিক রো ইনসার্ট করতে INSERT INTO ... SELECT ... UNION ALL প্যাটার্ন ব্যবহার করা হয়।

উদাহরণ

১. টার্গেট টেবিল তৈরি করুন

mysql> CREATE TABLE DemoTable1 (
    -> StudentName VARCHAR(20),
    -> StudentMarks INT
    -> );

২. সোর্স টেবিল তৈরি ও ডেটা ইনসার্ট করুন

mysql> CREATE TABLE DemoTable2 (Name VARCHAR(20));
mysql> INSERT INTO DemoTable2 VALUES('Chris');

৩. UNION ALL দিয়ে দুটি ভিন্ন মার্কস সহ রো ইনসার্ট করুন

mysql> INSERT INTO DemoTable1
    -> SELECT Name, 89 FROM DemoTable2
    -> UNION ALL
    -> SELECT Name, 98 FROM DemoTable2;

৪. টার্গেট টেবিলের ডেটা দেখুন

mysql> SELECT * FROM DemoTable1;

আউটপুট:

+-------------+--------------+
| StudentName | StudentMarks |
+-------------+--------------+
| Chris       | 89           |
| Chris       | 98           |
+-------------+--------------+

ব্যাখ্যা:

  • UNION ALL - ডুপ্লিকেট রো রেখে সব রো কম্বাইন করে (দ্রুত)।
  • UNION - ডুপ্লিকেট রিমুভ করে (স্লোওয়ার)।
  • প্রতিটি SELECT-এ কলাম সংখ্যা ও টাইপ মেলাতে হবে।
  • এই প্যাটার্ন ব্যবহার করে একই স্টুডেন্টের একাধিক পরীক্ষার নম্বর একসাথে ইনসার্ট করা যায়।

সতর্কতা: INSERT INTO ... SELECT অটোমেটিক কমিট হয় (ট্রানজ্যাকশন ব্লকে না থাকলে)। বড় অপারেশনের জন্য ট্রানজ্যাকশন ব্যবহার করুন।

  1. MySQL-এ UNION ALL ব্যবহার করে একক কোয়েরিতে দুটি টেবিলে রেকর্ড ইনসার্ট করা

  2. MySQL-এ একক SELECT কোয়েরিতে দুটি টেবিল থেকে ডেটা ফেচ করা

  3. MySQL-এ SELECT কুয়েরি দিয়ে INSERT করা (INSERT ... SELECT)

  4. MySQL-এ একসাথে দুটি কলাম আপডেট করা (সিঙ্গল কোয়েরি)