MySQL-এ একটি টেবিল থেকে ডেটা সিলেক্ট করে অন্য টেবিলে ইনসার্ট করতে INSERT INTO ... SELECT স্টেটমেন্ট ব্যবহার করা হয়।
উদাহরণ
সোর্স টেবিল (demo61):
CREATE TABLE demo61 (id INT, name VARCHAR(20)); INSERT INTO demo61 VALUES (1, 'John'), (2, 'David'), (1, 'Mike'), (2, 'Carol'), (2, 'Bob');
ডেটা:
+------+-------+ | id | name | +------+-------+ | 1 | John | | 2 | David | | 1 | Mike | | 2 | Carol | | 2 | Bob | +------+-------+
ডেস্টিনেশন টেবিল (demo62):
CREATE TABLE demo62 (
employee_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
employee_name VARCHAR(20)
);
কোয়েরি
demo61-এ id = 2 হলে name কলামগুলো demo62-এ ইনসার্ট:
INSERT INTO demo62(employee_name) SELECT name FROM demo61 WHERE id = 2;
আউটপুট
+-------------+---------------+ | employee_id | employee_name | +-------------+---------------+ | 1 | David | | 2 | Carol | | 3 | Bob | +-------------+---------------+
ব্যাখ্যা:
employee_idঅটো ইনক্রিমেন্ট, তাই মান দিতে হয়নি।SELECTকোয়েরি ৩টি রো রিটার্ন করে, তাই ৩টি রো ইনসার্ট হয়েছে।- কলাম নাম মিল না হলে (name vs employee_name) এক্সপ্লিসিট কলাম লিস্ট দিয়ে ম্যাপ করা হয়েছে।
বিকল্প: INSERT INTO demo62 SELECT NULL, name FROM demo61 WHERE id=2 (যদি কলাম অর্ডার মিলে থাকে)।