我想只使用table2中的新记录对table1进行增量更新。我正在寻找最快的方式。假设id是唯一整数,这三种方法中哪一种最快?如果您可以提出任何其他方法,请分享。
解决方案1。
INSERT INTO table1
SELECT * FROM table2
WHERE NOT EXISTS
(SELECT 1 FROM table1
WHERE table2.id = table1.id)
解决方案2.
INSERT INTO table1
SELECT table1.* FROM table1
LEFT OUTER JOIN table2
ON table1.id = table2.id
WHERE table2.id IS NULL
解决方案3。
INSERT INTO table1
SELECT * FROM table2
WHERE table2.id > (SELECT MAX([table1.id]) FROM table1)
答案 0 :(得分:0)
第三种解决方案比前两种解决方案无比快。不过要小心。它可能会返回与解决方案1和解决方案2不同的结果。
如果您想使用第3个解决方案,请确保id
中的新table2
总是比旧版本更高。您可以在两个表格中检查记录编号。我还建议在table1
中索引ID。
答案 1 :(得分:-1)
insert into table1
select table2.* from from table2 left outer join table1 on table2.id = table1.id
where table1.id is null