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

MySQL-এ SELECT কোয়েরির ফলাফল সরাসরি INSERT করা (INSERT ... SELECT)

MySQL-এ এক টেবিল থেকে ডেটা সিলেক্ট করে অন্য টেবিলে ইনসার্ট করতে INSERT ... SELECT সিনট্যাক্স ব্যবহার করুন। এতে VALUES ক্লজ লাগে না।

সিনট্যাক্স

INSERT INTO `target_table` (`col1`, `col2`, ...)
SELECT `col1`, `col2`, ... FROM `source_table` WHERE `condition`;

উদাহরণ: দুটি টেবিল

CREATE TABLE `FirstTableDemo` (
    `StudentId` INT, `StudentName` VARCHAR(100)
);
CREATE TABLE `SecondTableDemo` (
    `Id` INT, `Name` VARCHAR(100)
);

INSERT INTO `SecondTableDemo` VALUES (1, 'John'), (2, 'Sam');

SecondTableDemo থেকে FirstTableDemo-এ কপি (ডুপ্লিকেট এড়িয়ে)

INSERT INTO `FirstTableDemo` (`StudentId`, `StudentName`)
SELECT `Id`, `Name` FROM `SecondTableDemo` AS `tbl1`
WHERE `tbl1`.`Id` NOT IN (SELECT `StudentId` FROM `FirstTableDemo`);

ফলাফল: FirstTableDemo-এ ২টি রো ইনসার্ট হয়।

সুবিধা: অ্যাপ্লিকেশন লেয়ারে ডেটা আনতে হয় না, ডেটাবেস লেভেলেই দ্রুত কপি হয়।

  1. MySQL-এ টেবিলে নেই এমন মানগুলো কোয়েরি করে বের করা (UNION ALL + NOT EXISTS)

  2. MySQL-এ AUTO_INCREMENT টেবিলে INSERT INTO SELECT ব্যবহার করা

  3. MySQL স্টোরড প্রোসিডিউরে SELECT ব্যবহার করে পুরো টেবিল রিটার্ন করা

  4. MySQL-এ LEFT JOIN ব্যবহার করে টেবিল A-র ডেটা টেবিল B-এ না থাকলে টেবিল C-তে ইনসার্ট করা