2011-01-12 71 views
0

我确实有两个表,每个都有50000个数据。这两个表编号从1开始 - 50000,所以当我尝试通过使用如何合并两个表格?

INSERT IGNORE 
    INTO table_1 
SELECT * 
    FROM table_2 

它完全重写现有的从TABLE_2插入到TABLE_1。我不想重写它,但添加为新的,所以它将完成10万。但是也可以说索引列中有5到10个重复,所以也重复检查索引。我怎样才能做到这一点??

回答

0

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

+0

这不回答他的问题,所以应该在评论部分。你也不知道他的设置,所以PHP我不与他有关,例如可能是Python应用程序等。 – 2011-01-12 10:07:02

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 
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,这不是一个缓慢的数据库服务器上非常有效,并且可以与上表的更多信息被写越好。