PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

psycopg2:Aktualisieren Sie mehrere Zeilen in einer Tabelle mit Werten aus einem Tupel von Tupeln

Dieser Beitrag wies mich in die richtige Richtung. Die Dokumentation für extras.execute_values enthält auch ein großartiges Beispiel mit dem UPDATE Klausel.

c = db.cursor()
update_query = """UPDATE my_table AS t 
                  SET name = e.name 
                  FROM (VALUES %s) AS e(name, id) 
                  WHERE e.id = t.id;"""

psycopg2.extras.execute_values (
    c, update_query, new_values, template=None, page_size=100
)