По умолчанию psycopg2 автоматически запускает транзакции для вас, что означает, что вы должны указать его для фиксации. Обратите внимание, что commit
является методом connection
, а не cursor
.
conn = psycopg2.connection('...')
cur = conn.cursor()
cur.execute("...")
conn.commit()
Намерение состоит в том, чтобы вы могли сгруппировать несколько операторов в одну транзакцию, чтобы другие запросы не увидели внесенных изменений, но также и по причинам производительности.
Также обратите внимание, что вы должны всегда использовать заполнители вместо объединения строк вместе.
Например ::1011*
cur.execute("INSERT INTO im_entry.test (colname) VALUES (%s)", [p])
В противном случае вы рискуете сделать SQL-инъекции возможными .