PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

cursor.execute(INSERT INTO im_entry.test (+entrym+) VALUES ('+p+');)

Per impostazione predefinita, psycopg2 avvia automaticamente le transazioni, il che significa che devi dirgli di eseguire il commit. Nota che commit è un metodo di connection , non il cursor .

conn = psycopg2.connection('...')
cur = conn.cursor()
cur.execute("...")
conn.commit()

L'intento è che puoi raggruppare più istruzioni in un'unica transazione, in modo che le altre query non vedranno le modifiche apportate a metà, ma anche per motivi di prestazioni.

Tieni inoltre presente che dovresti sempre usare i segnaposto, invece di concatenare le stringhe insieme.
Es.:

cur.execute("INSERT INTO im_entry.test (colname) VALUES (%s)", [p])

Altrimenti rischi di rendere possibili attacchi SQL injection.