Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

วิธี Merge (รวม) สองตาราง MySQL

คำสั่งหลัก: INSERT IGNORE

INSERT IGNORE INTO yourTableName1 SELECT * FROM yourTableName2;

IGNORE จะข้ามแถวที่ซ้ำ Primary Key/Unique Key ไป

ตัวอย่างเต็มรูปแบบ

ตารางแรก (MergeDemo1)

mysql> create table MergeDemo1 (
    -> id int, primary key(id), Name varchar(200)
    -> );
mysql> insert into MergeDemo1 values(1,'John');

ตารางที่สอง (MergeDemo2)

mysql> create table MergeDemo2 (
    -> id int, primary key(id), Name varchar(200)
    -> );
mysql> insert into MergeDemo2 values(2,'David');

รวมตาราง

mysql> INSERT IGNORE INTO MergeDemo1 SELECT * FROM MergeDemo2;
Query OK, 1 row affected (0.19 sec)

ตรวจสอบผลลัพธ์

mysql> select * from MergeDemo1;
+----+-------+
| id | Name  |
+----+-------+
| 1  | John  |
| 2  | David |
+----+-------+
2 rows in set (0.00 sec)

กรณีมี Primary Key ซ้ำ

ถ้าตารางทั้งสองมี id ซ้ำกัน IGNORE จะข้ามแถวซ้ำ ไม่เกิด Error

วิธีอื่น

  • INSERT ... ON DUPLICATE KEY UPDATE: อัปเดตค่าถ้าซ้ำ
  • REPLACE INTO: ลบแถวเก่า แทรกใหม่ (ต้องมี PK/Unique)