我如何合并两个表?

时间:2011-01-12 10:02:28

标签: mysql sql phpmyadmin

我有两个表,每个表有50000个数据。两个表id从1 - 50000开始,所以当我尝试使用

从table_2插入table_1时
INSERT IGNORE
  INTO table_1 
SELECT *
  FROM table_2

它完全重写现有的。我不想重写它,但添加新的所以它将总共100k。但是可以说索引列中有5到10个重复,所以重复检查索引。我怎么能这样做?

3 个答案:

答案 0 :(得分:0)

使用PHP或其他喜欢的语言,这将是大约10-20行代码......

答案 1 :(得分:0)

如果table_1和table_2首先需要使用不同的密钥才能成功进行合并

table_1键必须从1-50000开始,table_2键值必须从50001-100000开始

对于复制,您可以使用mysql中的更新功能

进行处理
INSERT INTO table_1
    SELECT * FROM table_2
ON DUPLICATE KEY UPDATE table_1.val=table_1.val

答案 2 :(得分:0)

如果存在主键列,则必须将其从插入中排除(如果存在重复项)。

一种解决方案是插入一个删除重复值的选择。

INSERT IGNORE INTO table_1 (f1, f2, f3)
SELECT f1, f2, f2 FROM table_2 WHERE table_2.index NOT IN (SELECT index FROM table_1)

OBS,这在慢速数据库服务器上效率不高,可以通过表格的更多信息更好地编写。