![](/img/trans.png)
[英]Query works in postgres shell but sometimes fails to return results in psycopg2
[英]PostgresDB with psycopg2 query executing successfully but sometimes updating the record and sometimes not
我正在嘗試使用以下查詢使用 psycopg2 更新 PostgresDB,它正在成功執行但有時它沒有更新記錄(有時更新有時不更新)。 有人能幫我嗎?
def update_order_status(order_id, executed_at, order_executed, exec_completed, conn_prod):
rowcount = 0
sql = """UPDATE orders SET status = %s, executed_type = %s, executed_at= %s
WHERE order_id = %s"""
try:
cur = conn_prod.cursor()
cur.execute(sql, (order_executed, exec_completed, executed_at, order_id))
conn_prod.commit()
rowcount = cur.rowcount
cur.close()
print('Order status updated')
return rowcount
except Exception as e:
print(e)
conn_prod.rollback()
return rowcount
count = update_order_status('1234', '2021-10-26 13:30:18+00', 'COMPLETED', 'FULL', conn_prod)
只需將cur.close()
移動到 finally 塊
def update_order_status(order_id, executed_at, order_executed, exec_completed, conn_prod):
rowcount = 0
sql = """UPDATE orders SET status = %s, executed_type = %s, executed_at= %s
WHERE order_id = %s"""
cur = conn_prod.cursor()
try:
cur.execute(sql, (order_executed, exec_completed, executed_at, order_id))
conn_prod.commit()
rowcount = cur.rowcount
print('Order status updated')
except Exception as e:
print(e)
conn_prod.rollback()
finally:
cur.close()
return row_count
count = update_order_status('1234', '2021-10-26 13:30:18+00', 'COMPLETED', 'FULL', conn_prod)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.