Som standard starter psycopg2 transaktioner for dig automatisk, hvilket betyder, at du skal bede den om at forpligte sig. Bemærk at commit
er en metode til connection
, ikke cursor
.
conn = psycopg2.connection('...')
cur = conn.cursor()
cur.execute("...")
conn.commit()
Hensigten er, at du kan gruppere flere udsagn sammen i en enkelt transaktion, så andre forespørgsler ikke vil se halvgjorte ændringer, men også af præstationsmæssige årsager.
Bemærk også, at du altid bør bruge pladsholdere i stedet for at sammenkæde strenge.
F.eks.:
cur.execute("INSERT INTO im_entry.test (colname) VALUES (%s)", [p])
Ellers risikerer du at gøre SQL-injektionsangreb mulige.