gpt4 book ai didi

database - 从数据库表增量导出记录

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:30:54 25 4
gpt4 key购买 nike

对于我的记录系统 (RDBMS) 中的给定表,我需要实现一项功能来增量导出记录。例如,如果用户运行返回 x 条记录的导出作业,我想将快照 ID 返回给用户。对于下一个导出作业,用户会将快照 ID 传递给我,使用它我应该只能导出自那以后修改或添加的记录。理想情况下,我希望我的快照 ID 可以重复使用。换句话说,我不希望我的快照 ID 过期,但这不是硬性要求。

鉴于我的所有表中都有 LAST_UPDATE_DATE(时间戳)列,解决此问题的最佳方法是什么?

我不是在寻找代码、工具或命令。我只是在寻找我应该如何生成此快照 ID 并在后续调用中识别它以执行给定表中记录的增量导出的逻辑。

最佳答案

时间戳显然是全局的,因此快照 ID 只需要是一个时间戳即可。例如,在 SQL Server 中,您可以运行 SELECT CURRENT_TIMESTAMP 来获取当前时间戳。

当您想要导出时,对每个表运行单独的查询以导出时间戳介于上次导出和当前导出之间的行。如果时间戳字段被索引,这些查询中的每一个都应该非常快,显然取决于要导出的数据量。

假设您运行这些导出,而数据库上可能发生其他更新,重要的是您只获取一次当前时间戳,将其存储为变量并使用该值(而不是使用例如 CURRENT_TIMESTAMP自由),否则偶尔会丢失一些数据。

您可能需要考虑在每个表上设置一个 Deleted 列标志并更新它而不是删除行,这样您就知道哪些行被“删除”了。

关于database - 从数据库表增量导出记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16368316/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com