MySQL-এ একটি টেবিল থেকে ডেটা সিলেক্ট করে সরাসরি অন্য টেবিলে ইনসার্ট করতে INSERT INTO ... SELECT স্টেটমেন্ট ব্যবহার করা হয়।
উদাহরণ
সোর্স টেবিল (demo82):
CREATE TABLE demo82 (id INT, name VARCHAR(20)); INSERT INTO demo82 VALUES (100, 'John'), (101, 'Bob'), (101, 'David'), (101, 'Mike'), (100, 'Sam');
ডেটা:
+------+-------+ | id | name | +------+-------+ | 100 | John | | 101 | Bob | | 101 | David | | 101 | Mike | | 100 | Sam | +------+-------+
ডেস্টিনেশন টেবিল (demo83):
CREATE TABLE demo83 (id INT, username VARCHAR(20));
কোয়েরি
demo82-এ id=101 হলে name কলামগুলো demo83-এ কপি:
INSERT INTO demo83(id, username) SELECT id, name FROM demo82 WHERE id = 101;
আউটপুট (demo83)
+------+----------+ | id | username | +------+----------+ | 101 | Bob | | 101 | David | | 101 | Mike | +------+----------+
ব্যাখ্যা:
INSERT INTO demo83(id, username)- টার্গেট কলামগুলো স্পেসিফাই করা হয়েছে।SELECT id, name FROM demo82 WHERE id = 101- সোর্স ডেটা (৩ রো)।- কলাম অর্ডার ও টাইপ মিলতে হয়।
AUTO_INCREMENTকলাম থাকলে সেটি এড়িয়ে যেতে পারে (NULL বা DEFAULT দিয়ে)।
ব্যবহার ক্ষেত্র: আর্কাইভিং, রিপোর্টিং টেবিল পূরণ, ডেটা মাইগ্রেশন, ব্যাকআপ ইত্যাদি।