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

MySQL-এ CREATE TABLE AS SELECT UNION দিয়ে দুটি টেবিল মার্জ

MySQL-এ CREATE TABLE ... AS SELECT ... UNION ... ব্যবহার করে দুটি টেবিলের ডেটা মার্জ করে নতুন টেবিল তৈরি করা যায়।

টেবিল ১

mysql> CREATE TABLE DemoTable1 (FirstName VARCHAR(1000));
INSERT INTO DemoTable1 VALUES ('John');

টেবিল ২

mysql> CREATE TABLE DemoTable2 (FirstName VARCHAR(100));
INSERT INTO DemoTable2 VALUES ('Chris');

মার্জ করে নতুন টেবিল তৈরি (সোর্স টেবিল ট্র্যাকিং সহ)

mysql> CREATE TABLE DemoTable3 AS
    (SELECT FirstName, 'DemoTable1' AS `TABLE_NAME` FROM DemoTable1)
    UNION
    (SELECT FirstName, 'DemoTable2' AS `TABLE_NAME` FROM DemoTable2);
Query OK, 2 rows affected (1.08 sec)

ফলাফল

mysql> SELECT * FROM DemoTable3;
+-----------+--------------+
| FirstName | TABLE_NAME   |
+-----------+--------------+
| John      | DemoTable1   |
| Chris     | DemoTable2   |
+-----------+--------------+

নোটস

  • CREATE TABLE ... AS SELECT → নতুন টেবিলে ইনডেক্স, কনস্ট্রেইন্ট, AUTO_INCREMENT হয় না (শুধু কলাম+ডেটা)
  • UNION → ডুপ্লিকেট রো সরিয়ে দেয়; UNION ALL → সব রো রাখে (দ্রুত)
  • কলাম নাম/টাইপ প্রথম SELECT- থেকে নেওয়া হয়
  • বড় ডেটাসেটের জন্য INSERT INTO new_tbl SELECT ... UNION ALL SELECT ... ভালো (টেবিল আগে তৈরি করে)
  1. MySQL-এ UNION ALL ব্যবহার করে একক কোয়েরিতে দুটি টেবিলে রেকর্ড ইনসার্ট করা

  2. MySQL-এ TINYINT সহ UPDATE স্টেটমেন্ট ব্যবহার

  3. MySQL-এ CREATE TEMPORARY TABLE ব্যবহার করে তারিখ সহ অস্থায়ী টেবিল তৈরি

  4. MySQL-ে ইনডেক্সসহ টেবিল তৈরি করা (CREATE INDEX)