我在 2 个不同的数据库(一个本地和一个远程)中有两个相同的表。它们都有一个Datetime
(或Datetime2
其他任何东西,我仍然可以更改该)列,该列指定添加它们的时间。我想要的是从远程表中获取尚未被带到本地表的记录。
为此从本地表中获取最大值,然后我尝试放置条件WHERE remoteTable.CreateTime > maxLocalValue
,但我不知道为什么这似乎覆盖了边界上的一些记录。有更好的方法吗?在秒或分钟级别上?
因为我们知道哪些值已经添加到本地表中,所以只添加远程表中不在本地表中的值。让 local_table 代表本地表和 remote_table 代表远程表,并且 rcd_1 是两个表中代表 DATE 类型的列。
INSERT INTO local_table (col_1,.....(how evermany columns you need), rcd_1)
SELECT rcd_1 FROM remote_table
where remote_table.rcd_1 <> local_table.rcd_1;
您解释您的问题的方式表明,只有较新的日期从远程添加到本地,所以只要这成立,您应该得到所需的结果。