Sql 如何从表中的上一次加载中选择大于文件中存储的最大时间戳的记录
我有一个SQL脚本,从中提取数据存储到数据帧中 当前代码Sql 如何从表中的上一次加载中选择大于文件中存储的最大时间戳的记录,sql,python-3.x,pandas,dataframe,datetime,Sql,Python 3.x,Pandas,Dataframe,Datetime,我有一个SQL脚本,从中提取数据存储到数据帧中 当前代码 cursor.execute(""" SELECT * FROM ofs.ord_add oa WHERE oa.is_active = 'Y' AND oa.or_ad_id = 5820 AND oa.flag_value = 'Y' """) data3=cursor.fetchall() columns = [column[0] for co
cursor.execute("""
SELECT * FROM ofs.ord_add oa
WHERE
oa.is_active = 'Y' AND oa.or_ad_id = 5820 AND oa.flag_value = 'Y'
""")
data3=cursor.fetchall()
columns = [column[0] for column in cursor.description]
order_addition = pd.DataFrame(data3,columns=columns)
**电流输出-Run1**
ID IS_ACTIVE OR_AD_ID FLAG_VALUE INSERT TIMESTAMP
12300 Y 5820 Y 2020-01-06 08:12:53
14340 Y 5820 Y 2020-01-19 06:11:53
**电流输出-Run2**
ID IS_ACTIVE OR_AD_ID FLAG_VALUE INSERT TIMESTAMP
12300 Y 5820 Y 2020-01-06 08:12:53
14340 Y 5820 Y 2020-01-19 06:11:53
22368 Y 5820 Y 2020-01-22 08:12:53
34567 Y 5820 Y 2020-01-24 06:11:53
我希望在当前代码中使用一个条件,以便:
1) 上次运行的最大插入时间戳存储在文件中
2) 在SQL查询的下一次运行中,只有大于文件中存储的最大时间戳的记录被删除
加载到数据帧中
运行2后的预期输出
ID IS_ACTIVE OR_AD_ID FLAG_VALUE INSERT TIMESTAMP
22368 Y 5820 Y 2020-01-22 08:12:53
34567 Y 5820 Y 2020-01-24 06:11:53
如何在python中实现这一点?首先,从第一次运行开始创建一个变量:
unique_ids = tuple(dataframe.IDs.unique.tolist())
然后下次执行sql查询
cursor.execute("""
SELECT * FROM ofs.ord_add oa
WHERE
oa.is_active = 'Y' AND oa.or_ad_id = 5820 AND oa.flag_value = 'Y'
AND oa.ID NOT IN %(unique_ids)s;
"""
({'unique_ids':unique_ids})
)
测试可变位置保持。。。我可能在这段代码中搞错了。但整个想法是,在再次运行查询之前,获取变量,然后将其传递给查询。有一个关于如何传入变量的指南。我很想得到你的反馈,不管它是否有效真是个好问题。我的代码中也有类似的问题。您介意显示data3=cursor.fetchall()的输出吗?@sammywemmy,我已经提出了,它与上面发布的输出相同如何将max_last_运行存储在触发查询的数据库表中。然后您可以选择所有记录>该记录value@GeorgeJoseph,我需要在linux服务器中处理该问题,因此我需要存储上一次运行文件中的最大时间戳