PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

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

Par défaut, psycopg2 démarre automatiquement les transactions pour vous, ce qui signifie que vous devez lui dire de valider. Notez que commit est une méthode de la connection , pas le cursor .

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

L'intention est que vous puissiez regrouper plusieurs déclarations dans une seule transaction, afin que les autres requêtes ne voient pas les modifications à moitié effectuées, mais aussi pour des raisons de performances.

Notez également que vous devez toujours utiliser des espaces réservés, au lieu de concaténer des chaînes ensemble.
Par exemple :

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

Sinon, vous risquez de rendre possibles les attaques par injection SQL.