gpt4 book ai didi

mysql - 我可以使用 "last update"时间戳来选择要更新的 MySQL 记录吗?

转载 作者:行者123 更新时间:2023-11-29 02:30:25 24 4
gpt4 key购买 nike

我有一个包含大约 30,000 行的 MySQL 数据库。我每晚将此数据库更新到远程服务器,但一次更新的行数从不超过 50 行。我是唯一更新数据库的人。我想开发一种方法,仅将已更改的行导出到远程服务器。

为了节省数据库空间并在导出到远程服务器时节省时间,我构建了“存档”表(在远程服务器上),其中包含不再更新且不驻留在本地数据库。但我知道将这些数据拆分到多个表中是糟糕的设计,如果表的结构需要更改,可能会导致问题。

所以我想重建数据库,以便所有具有相似表结构的记录都在一个表中(就像数据库小得多时一样)。生成的表(包含所有存档记录)的大小将超过 80,000 行,这对于在整个数据库包中导出来说太大了。

为此,我想(1) 在添加或修改行时更新每行中的“最后更新”时间戳(2) 仅选择表中“最后更新”时间戳大于上次导出操作时间戳的行进行导出(3) 编写一个查询,构建仅包含新行和更新行的导出 .sql 文件(4)更新导出操作的时间戳,用于下次导出时进行比较

有人做过吗?如果是这样,我将不胜感激有关如何完成此任务的一些指导。

史蒂夫

最佳答案

如果您添加一个具有timestamp 数据类型的列,例如last_updated timestamp,它每次都会自动更新为now()一行发生变化。

然后每天一早,简单地发送昨天的更改:

select * from mytable
where last_updated between subdate(CURDATE(), 1) and CURDATE()

关于mysql - 我可以使用 "last update"时间戳来选择要更新的 MySQL 记录吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14116363/

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