仅在最近4个小时内没有重复的情况下插入表格

时间:2018-12-30 21:06:02

标签: python mysql mysql-connector

我有两个桌子。每次程序运行时,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()

这是两个表的布局(它们都相同)

The layout of both tables

1 个答案:

答案 0 :(得分:0)

您要定期将一个表的内容备份到另一个具有相同结构的表。最好始终保存到相同的唯一表中。

您的源表有一个时间戳字段,可用于过滤记录。您似乎在寻找WHERE子句,该子句根据时间间隔过滤数据;那应该是:

WHERE datetimeofinsert > DATE_SUB(NOW(), INTERVAL 4 HOUR)