psycopg2 not actually inserting data psycopg2 not actually inserting data postgresql postgresql

psycopg2 not actually inserting data


You didn't commit the transaction.

Psycopg2 opens a transaction automatically, and you must tell it to commit in order to make the data visible to other sessions.

See the psycopg2 FAQ and the connection.commit() method.


Just had the same perplexing issue. To put options together:

as @Craig Ringer writes after cursor.execute you can run connection.commit

cursor.execute('INSERT INTO table VALUES(DEFAULT, %s)', email)...connection.commit()

ORafter connect set autocommit

connection = connect("user='pguser' host='localhost' dbname='pgdb' password='pgpass'")connection.autocommit = True

ORuse set_session to set autocommit

connection = connect("user='pguser' host='localhost' dbname='pgdb' password='pgpass'") connection.set_session(autocommit=True)

All worked for me.