PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

psycopg2 :mettre à jour plusieurs lignes dans une table avec les valeurs d'un tuple de tuples

Ce message m'a orienté dans la bonne direction. La documentation pour extras.execute_values contient également un excellent exemple utilisant le UPDATE clause.

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
)