在SQL批量上载期间删除旧记录

时间:2009-09-18 19:19:47

标签: sql database

我正在寻找在批量数据上传期间管理数据库表中数据的最佳做法和想法。我认为从一个例子开始是最容易的:

假设有问题的数据库表包含以下记录:

id | name      | ...
 1 | company A |
 2 | company B |
 3 | company C |

然后,我选择使用新数据文件批量更新此表,该数据文件仅包含公司A和C的信息,并且了解公司B不再是所需的数据点。

所以我的问题是:我使用upsert技术来管理数据文件中列出的数据点,但是如何有效地从数据库(例如公司B)中删除未表示的数据点?我应该监控时间戳并清除早于上传开始时间的结果吗?或者我应该只是转储整个表并重新填充它(以管理索引为代价)?后者的缺点是在上传过程中使表无用,但前者具有并发和锁定问题。想法?

1 个答案:

答案 0 :(得分:2)

我将数据放入工作表中,然后使用sql代码仅插入或更新我想要的记录,而不是批量插入到生产表中。

很抱歉误解了,你想知道如何摆脱没有长期有用的记录? 再次批量插入工作表,然后连接到该表以识别不再需要哪些记录,并使用delte语句删除它们。