我正在为不同的日期生成数据框(df
),它将具有以下变量
date value rowId
2016-05-14 2.5 1
2016-05-14 3.0 2
2016-05-14 3.4 5
我必须更新postgres表(value
)中的列(Table1
)。此表已包含(value
)中十进制类型的列(Table1
)以及唯一标识符(rowId
)
for d in range(0,len(df)):
QUERY=""" UPDATE "Table1" SET "value"='%s' WHERE "Table1"."rowId"='%s'
""" % (df['value'][d], df['rowId'][d])
cur.execute(QUERY)
没有错误。但是,上面的代码不会更新Postgres表中的列。代码中是否有错误?
答案 0 :(得分:0)
好吧,使用提交关闭事务应该会有所帮助。我不确定您使用的是psycopg2
,还是其他具有commit()
功能的库。如果没有,那么一个简单的cur.execute('COMMIT')
就足够了。这应该在for
循环后立即运行。