【问题标题】:How to Sql Update Into with variables in python?python - 如何使用python中的变量进行Sql更新?
【发布时间】:2021-07-29 16:25:46
【问题描述】:

连接和所有其他 sql 执行工作正常,但我的更新语句没有:

sql= "UPDATE table_name SET column2=%s, column3=%s WHERE column1=%s;"
values = (variable2, variable3, variable1)
cursor.execute(sql, values)

输出为无。

【问题讨论】:

  • 更新sql只返回影响的行等信息,你可以查看表来检查它的数据是否改变了
  • 截至cursor.execute 上的文档:未定义返回值。因此尚不清楚您希望返回的数据是什么。
  • 我检查了 pgAamin 中的表,没有进行更新。
  • 这不是重复的吗?

标签: python sql sql-update python-3.7


【解决方案1】:

更新 sql 条目的最佳方法是“INSERT INTO ... ON CONFLICT”函数。

cursor.execute("""
            INSERT INTO tablename
            (column1, column2, column3)
            VALUES
                (%s, %s, %s)
            ON CONFLICT(column1) DO UPDATE
            SET
                column2=excluded.column2,
                column3=excluded.column3;
                   """, (Value1, Value2, Value3)
                       )

【讨论】:

    【解决方案2】:

    尝试使用 f 个字符串。

    sql= f"UPDATE table_name SET column2={variable2}, column3={variable3} WHERE column1={variable1};"
    cursor.execute(sql)
    

    【讨论】:

    • 使用字符串连接是非常糟糕的建议,绑定变量是为了安全而发明的。
    猜你喜欢
    • 1970-01-01
    • 2021-12-24
    • 2020-03-31
    • 2010-10-04
    • 1970-01-01
    • 2015-02-27
    • 1970-01-01
    • 1970-01-01
    • 2016-08-15
    相关资源
    最近更新 更多