在一分钟内多次更新表中的值

问题描述 投票:0回答:1

我需要在一分钟内多次调用Update。这是正确的方法吗?我认为不是,因为有时我会遇到异常 -

cursor already closed
。我从多个线程调用这个函数,可能需要锁定这部分?

conn = psycopg2.connect(dbname='MyDB', user='...', password='...', host='127.0.0.1')
cursor = conn.cursor()

def update_data(name,type, value):
    cursor.execute("UPDATE Datas SET Value = %s WHERE Name = %s and Type = %s", (value, name, type))
    conn.commit()

或者我每次都需要打开连接并初始化光标?我每分钟拨打

update_data
约 600 次。

我需要查看网站上的实时数据更新。可能需要此信息。

python psycopg2
1个回答
1
投票

与其提交每个数据,不如将数据存储在列表中一段时间,例如让函数仅在有 1000 个数据项时提交。这将使您的代码高效。您可以使用列表来存储数据而不是提交。然后仅当列表的

len()
大于 1000 时才运行更新。将列表传递给 update() 函数并在其中运行 for 循环。一切执行完毕后commit。

© www.soinside.com 2019 - 2024. All rights reserved.