微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

基于时间戳增加行值的 SQL 查询

如何解决基于时间戳增加行值的 SQL 查询

我有一个下面的 sql 表,用于保存来自 ERP 的文件。有时文件会卡住并保留在表中。为了避免这种情况,我需要将“SequenceNumber”列中的值增加 1,以便处理下一个文件

在下面的 sql 表中,如果对于方法 pricebook-文件 pricebook_1.xml 的存在时间比当前系统时间戳多 5 分钟,那么“seq num”值应该从 1190 增加到 1191。 我如何通过使用 GETDATE() 函数来实现这一点

enter image description here

解决方法

首先想到的是您需要修复卡住的进程。但是,这可能超出您的控制范围。

因此,假设您在现有记录上增加 Seq Num 而不是向表中插入新记录,您可以像这样将其作为 UPDATE 语句运行。但是,如果您只增加 Seq Num,此更新将继续一遍又一遍地运行,因为日期不会更改。因此,我假设您还想更新 Last Date Changed 列。

我强烈建议你也向这个控制表添加一个额外的标志列,这样你就可以标记哪些记录是完整的/卡住的/什么的,这样你针对这个表运行的任何进程都能够更好地知道它需要查看哪些数据子集。

UPDATE tbl
SET seq_num = seq_num + 1,last_date_changed = GETDATE()
WHERE DATEDIFF(MI,last_date_changed,GETDATE())>5
AND method='pricebook'

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。