UNION দিয়ে টেবিল মার্জ
CREATE TABLE ... SELECT ... UNION SELECT ... প্যাটার্ন দিয়ে দুটি টেবিলের ডেটা মিলিয়ে নতুন টেবিল তৈরি করা যায়। UNION ডিফল্টভাবে ডুপ্লিকেট রো সরিয়ে দেয়। ডুপ্লিকেট রাখতে UNION ALL ব্যবহার করুন।
সিনট্যাক্স
CREATE TABLE newTable AS (SELECT * FROM table1) UNION (SELECT * FROM table2);
উদাহরণ
প্রথম টেবিল
mysql> create table Old_TableDemo (
-> UserId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> UserName varchar(20)
-> );
Query OK, 0 rows affected (0.63 sec)
mysql> insert into Old_TableDemo(UserName) values('John');
Query OK, 1 row affected (0.22 sec)
mysql> insert into Old_TableDemo(UserName) values('Carol');
Query OK, 1 row affected (0.15 sec)
দ্বিতীয় টেবিল
mysql> create table Old_TableDemo2 (
-> UserId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> UserName varchar(20)
-> );
Query OK, 0 rows affected (0.60 sec)
mysql> insert into Old_TableDemo2(UserName) values('Larry');
Query OK, 1 row affected (0.22 sec)
mysql> insert into Old_TableDemo2(UserName) values('Sam');
Query OK, 1 row affected (0.10 sec)
নতুন টেবিল তৈরি (UNION)
mysql> CREATE TABLE UserTableDemo
-> (SELECT * FROM Old_TableDemo)
-> UNION
-> (SELECT * FROM Old_TableDemo2);
Query OK, 4 rows affected (1.18 sec)
Records: 4 Duplicates: 0 Warnings: 0
নতুন টেবিল ডেটা
mysql> SELECT * FROM UserTableDemo;
আউটপুট
+--------+----------+ | UserId | UserName | +--------+----------+ | 1 | John | | 2 | Carol | | 1 | Larry | | 2 | Sam | +--------+----------+
গুরুত্বপূর্ণ: UserId অটো-ইনক্রিমেন্ট থাকায় দুটি টেবিলে একই ID থাকতে পারে। প্রোডাকশনে সারোগেট কি হ্যান্ডলিং ভেবে নিন। কলাম অর্ডার এবং টাইপ মিল থাকতে হবে।