我想合并 2 个 MySQL 表而不添加相同的行。 我有 2 个表,列相同但行不同,例如。
table_1
+-------+--------+------+
| Name | ResNum | Code |
+-------+--------+------+
| User1 | 25BAM8 | PAR1 |
| User2 | E26J09 | COP3 |
+-------+--------+------+
table_2
+-------+--------+------+
| Name | ResNum | Code |
+-------+--------+------+
| User1 | 25BAM8 | PAR1 |
| User3 | 34VNS2 | PAR1 |
| User4 | EZQVG5 | COP3 |
+-------+--------+------+
我想在将 table_2 合并到 table_1 时得到这个:
table_1
+-------+--------+------+
| Name | ResNum | Code |
+-------+--------+------+
| User1 | 25BAM8 | PAR1 |
| User2 | E26J09 | COP3 |
| User3 | 34VNS2 | PAR1 |
| User4 | EZQVG5 | COP3 |
+-------+--------+------+
我已经尝试使用 INSERT IGNORE INTO 和 REPLACE INTO 命令,但它会复制现有的行,就像这样:
table_1
+-------+--------+------+
| Name | ResNum | Code |
+-------+--------+------+
| User1 | 25BAM8 | PAR1 |
| User1 | 25BAM8 | PAR1 |
| User2 | E26J09 | COP3 |
| User3 | 34VNS2 | PAR1 |
| User4 | EZQVG5 | COP3 |
+-------+--------+------+
如有任何帮助,我们将不胜感激。
最佳答案
一个简单的解决方案是在 table_1 的名称上放置一个临时的 UNIQUE 索引:
CREATE UNIQUE INDEX unique_name ON table_1(Name)
要传输实际行,请使用 SELECT INSERT:
INSERT INTO table_1(Name, ResNum, Code) SELECT Name, ResNum, Code FROM table_2.
然后删除 UNIQUE 索引:
DROP INDEX unique_name ON table_1
关于mysql - 如何在 MySQL 中合并 2 个表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8202931/