0
私はdb内の単一の行を更新する関数を持っています。複数の挿入/更新をコミットするPython DB-Api
def update_one_row(conn, condition, value):
with conn.cursor() as curr:
curr.execute("""UPDATE persons p
SET p.age=%s
WHERE p.name=%s;""",
(value, condition))
それは、この関数の複数(数千)時間を使用し、その後conn.commit()
を行い、このようにしても大丈夫です:
from pymysql import Connect
connect_args = {...}
conn = Connect(**connect_args)
for condition, value in iterable_of_conditions_values:
update_one_row(conn, condition, value)
# Here I visually inspect in jupyter notebook if things went as expected and I accidentaly did not screw up
conn.commit()
または私はupdate_one_row
にcurr
代わりのconn
を渡す必要がありますか?
私はcurr.executemany()
を認識していますが、私は明示的なループを優先します。パフォーマンスの違いはありますか?
全体として、私はカーソルの使い方やコミットのタイミングがかなり崩れています。