每隔几秒钟从python中的SQL获取新数据

2024-09-25 02:36:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我想制作一个python脚本,该脚本持续检查Mysql数据库,并每隔几秒钟打印出新的更新记录

import time
sql_conn = connectSQLServer('ODBC Driver 13 for SQL Server', 'D\SQLEXPRESS', 'display')

mycursor = sql_conn.cursor()

a = 0
while True:
    try:
        time.sleep(1)
        a=a+1
        print(a)
        sql = "SELECT id, val FROM dbo.LiveStatsFromSQLServer"    
        mycursor.execute(sql)

        myresult = mycursor.fetchall()

        for x in myresult:
            print(x)


    except Exception as error:
        print("Nothing in database\n")
        print(error)
sql_conn.commit()

预期产出: 列为(id、值)

1second
(1625, 3)
(1626, 0)
(1627, 10)
2second
(1625, 3)
(1626, 0)
(1627, 10)
3second
(1625, 3)
(1626, 0)
(1627, 10)
(1628,20)

Tags: in脚本id数据库forsqltime记录
1条回答
网友
1楼 · 发布于 2024-09-25 02:36:35

由于您的记录似乎以自动递增标识符开头,您可以执行以下操作:

sql = "SELECT id, val FROM dbo.LiveStatsFromSQLServer WHERE id > %s"
mycursor.execute(sql, prev_id)

print(x)之后添加类似prev_id = x[0]的内容:

    for x in myresult:
        print(x)
        prev_id = x[0]

注意:我不知道结果的实际第一列被调用了什么,如果您想select *,只需在脚本中用实际的列名替换id,而不是命名列(假设有2列)

相关问题 更多 >