python - 仅当过去 4 小时内没有重复项时才插入表中
问题描述
我有两张桌子。BUYWALLDATA3 每次程序运行时都会被截断。
BUYWALL 是我想将插入 BUYWALLDATA3 的数据存储 4 小时的地方。
运行代码时,有时同一个 COINPAIR 有多个条目。但是一旦插入了这些条目,我不想在 4 小时内更新该 COINPAIR 的行。一旦这 4 个小时结束,我想再次更新这些条目。
这是因为我有另一个脚本可以在这 4 个小时内分析来自 BUYWALL 的数据。
任何想法如何做到这一点?
这是一个加密警报机器人。
sql = "INSERT INTO BUYWALLDATA3 (COINPAIR, BUYWALLPRICE, BUYWALLSIZEINBTC, volumethreshold, datetimeofinsert) VALUES (%s, %s, %s, %s, NOW())"
val = [
(whichmarket[f], var_element_check[0], sum_array_check, volume_threshold)
]
mycursor.executemany(sql, val)
cnx.commit()
print(mycursor.rowcount, "was inserted.")
sql = "INSERT IGNORE INTO BUYWALL (COINPAIR, BUYWALLPRICE, BUYWALLSIZEINBTC, volumethreshold, datetimeofinsert) VALUES (%s, %s, %s, %s, NOW()) "
val = [
(whichmarket[f], var_element_check[0], sum_array_check, volume_threshold)
]
mycursor.executemany(sql, val)
cnx.commit()
这是两个表的布局(它们都是相同的)
解决方案
您希望定期将其中一个表的内容备份到另一个具有相同结构的表中。最好始终保存到同一个唯一的表中。
您的源表有一个时间戳字段,可用于过滤记录。您似乎正在寻找基于时间间隔过滤数据的 WHERE 子句;那将是:
WHERE datetimeofinsert > DATE_SUB(NOW(), INTERVAL 4 HOUR)
推荐阅读
- azure-devops - npm 任务运行时日志不可见
- python - Python:ValueError:无法解码任何 JSON 对象
- javascript - 从单独的 php 脚本调用 javascript 函数?
- openstreetmap - 如何在 overpass turbo 中编写具有两个要求的查询?
- php - Laravel 上的关系
- ruby-on-rails - 如何使用 Docker 创建它
- sql - 在 T-SQL SQL-SERVER 中将单个 XML 括号列转换为多列
- dicom - 如何使用 ClearCanvas 库添加私有 DICOM 标签?
- java - 通过元素的位置在二维数组中查找邻居
- java - 在 IntelliJ Idea 中调试时在 Map 中设置值