我有2张桌子。一个是生产表,另一个是每日报告表。每日报告表每天清空。每日报告表是生产表的子集。我想用生产表中的所有新行更新每日表。我想过使用where子句;
SELECT ftime,
fdate,
fdata,
fdata2
INTO table2
FROM table1
WHERE ftime > table2.ftime
我没有太多运气。我是SQL的新手,我只是不确定如何解决这个问题,而且似乎无法在网上找到任何针对此特定问题的内容。
当我开始工作时,这最终会进入存储过程。
任何提示和提示都将非常感激。
答案 0 :(得分:1)
SELECT ftime,
fdate,
fdata,
fdata2
INTO table2
FROM table1
WHERE ftime > (select MAX(ftime) from table2)
OR NOT EXISTS (select * FROM table2);
如果table2为空(例如你刚刚完成了每日清除),那么table1的所有内容都会被拉入table2。
否则,它只会在table1中插入新记录,而ftime
比table2中存在的更新。
确保table2.ftime上有索引