首页 > 解决方案 > 在 psycopg2 中未执行有效的更新查询

问题描述

我有一个要由 psycopg2 执行的更新 sql 查询,但它似乎没有工作或执行。

我调试要使用mogrify函数执行的查询。

req = cursor.mogrify(request_update_sql, (status, previous_status, request_id) )

翻译为:

b'UPDATE "TBL_COVER" SET status=\'cancelled\', previous_status=\'pending\', date_updated=current_timestamp WHERE cover_id=\'COVER_00008\''

生成更新 sql 字符串的函数:

def update_request_status(has_comments=False, has_approver_id=False):
    str_query = f"UPDATE \"TBL_COVER\" SET status=%s, previous_status=%s, date_updated=current_timestamp WHERE cover_id=%s"
    return str_query

原始代码应如下所示,但我测试了简单的更新查询以更轻松地检查错误:

def update_request_status(has_comments=False, has_approver_id=False):
    str_query = f"UPDATE \"TBL_COVER\" SET status=%s, previous_status=%s, date_updated=current_timestamp"
    
    if has_comments:
        str_query += f", comments=%s"
    if has_approver_id:
        str_query += f", approver_id=%s"
        
    str_query += f" WHERE cover_id=%s"
        
    return str_query

执行后: cursor.execute(request_update_sql, (status, previous_status, cover_id) ) 我尝试显示光标内容,它说"DatabaseError: no results to fetch"

我有什么想念的吗?任何帮助表示赞赏

标签: postgresqlaws-lambdapsycopg2

解决方案


推荐阅读