簡體   English   中英

帶有 psycopg2 查詢的 PostgresDB 成功執行但有時更新記錄有時不更新

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM