Ve výchozím nastavení za vás psycopg2 spouští transakce automaticky, což znamená, že mu musíte říct, aby se zavázal. Všimněte si, že commit
je metoda connection
, nikoli cursor
.
conn = psycopg2.connection('...')
cur = conn.cursor()
cur.execute("...")
conn.commit()
Záměrem je, že můžete seskupit více příkazů do jedné transakce, takže ostatní dotazy neuvidí poloviční změny, ale také z důvodu výkonu.
Nezapomeňte také, že byste vždy měli používat zástupné symboly namísto spojování řetězců dohromady.
Např.:
cur.execute("INSERT INTO im_entry.test (colname) VALUES (%s)", [p])
V opačném případě riskujete provedení útoků SQL injection.