避免插入重复记录的有效方法

时间:2014-03-28 07:28:55

标签: database

记录从一个数据库插入另一个数据库的场景:

假设我在db1中有100,000条记录,并且我从数据库db1和中选择一批记录 将其插入另一个数据库db2。通过选择一批记录,我的意思是我选择了1000条记录 一次。下次,我运行相同的查询来选择另一批1000条记录,我想从头开始 记录号1001,因为所有以前的记录已经从第1行开始的1000条记录 插入db2。

所以,基本上,第二次,我想避免再次复制相同数量的记录以避免 数据库db2中的重复记录。

为了避免插入重复记录,我现在关注的一种方法是, 我在我的数据库db1中有一个名为flag的整数值列,其值为负值,例如-1表示并且很快 当我抓取1000条记录时,我将值更新为正值,即+1。这样,第二次 我将运行查询以获取下一组1000条记录,它将从记录#1001开始。

我想知道这是否是一种有效的方法,因为每次运行我的查询时,我的查询都会检查 db1中的所有记录从一开始就最终开始从中获取数据 会注意到标志列中负值的开始。请建议是否有更高效的 方法

P.S:我正在使用JDBC来获取记录并将其插入另一个数据库。

由于

1 个答案:

答案 0 :(得分:0)

我不会仅为此purpouse更新 db1 中的表。

我宁愿在 db1 中创建另一个表,或者更好地在 db2 中创建另一个表,用于控制purpouses。

这样您就不需要处理 db1 中原始表中的写访问权限和/或种族或冲突或多用户冲突条件。

第二个表将为每次提取记录时间戳,涉及的表,提取的范围,用户名,进程名称......以及您可能感兴趣的任何其他控制信息。