我有两个表,每个表有50000个数据。两个表id从1 - 50000开始,所以当我尝试使用
从table_2插入table_1时INSERT IGNORE
INTO table_1
SELECT *
FROM table_2
它完全重写现有的。我不想重写它,但添加新的所以它将总共100k。但是可以说索引列中有5到10个重复,所以重复检查索引。我怎么能这样做?
答案 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,这在慢速数据库服务器上效率不高,可以通过表格的更多信息更好地编写。