python实时监控数据库的新数据
本帖最后由 syf1313113 于 2022-1-9 00:29 编辑想用python监控数据库,但是不想在数据库中加触发器,从网上搜了下有点思路但是不知道该怎么写
用python查数据库 然后记录下最新一个数据的id(表中id是自增的),然后过一段时间后 从记录的id开始查数据库 然后再记录一个最新的id,下次再从本次记录的id开始查
有大佬能实现吗 求段代码学习学习(最好有点注释的那种)
面向百度编程选手自己瞎写了一下 能实现想要的功能,但是不知道有什么不妥的地方吗
贴代码:
# 定义一个空的列表,用于存放数据库中查询出来的最后一个id
data = []
def index():
# 判断 如果data为空,即第一次查询 就查询最后一条数据并把它的id添加到data
if data == []:
# sql:ORDER BY id DESC LIMIT 1 即反向查询的第一条数据,也就是最后一条
sql = "select * from po ORDER BY id DESC LIMIT 1"
# 将sql传给test2,调用方法
data2 = test2(sql)
# 添加id到data
data.append(data2[-1])
# 如果不是第一次查询
else:
# 从上次次记录的id开始查往后的5条数据
sql = "select * from po limit %s,5"%data
data2 = test2(sql)
# 判断:只有查询出来的数据不为空时,即每次查询都要有有新数据才能执行
if data2 != ():
# 将最新的id替换之前的id
data = (data2[-1])
return jsonify(data2,data) 不用,建表时候加个created_time自动时间戳字段,然后查询时候直接order by created_time limit 1
arryboom 发表于 2022-1-8 22:55
不用,建表时候加个created_time自动时间戳字段,然后查询时候直接order by created_time limit 1
你这个是查一条最新的记录吗。现在问题是不知道这一次查距离上次查 这个时间段内总共更新了几条数据 syf1313113 发表于 2022-1-8 23:13
你这个是查一条最新的记录吗。现在问题是不知道这一次查距离上次查 这个时间段内总共更新了几条数据
对,这个是最新的一条记录,如果你要按时间段查那只能你一开始说的方法了 大神{:1_893:},纯表情阅读 不是很懂,只能膜拜了 太久没和PYTHON打交道了,都忘记得差不多了。 是binlog不好用了吗 kicebeauty 发表于 2022-1-9 14:23
是binlog不好用了吗
数据库没开日志 只有报错日志 mysql可以订阅binlog,没开的话开一下就行了
页:
[1]