sql >> Database >  >> RDS >> PostgreSQL

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

Standaard start psycopg2 automatisch transacties voor u, wat betekent dat u het moet vertellen om te committen. Merk op dat commit is een methode van de connection , niet de cursor .

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

De bedoeling is dat je meerdere overzichten kunt groeperen in één transactie, zodat andere zoekopdrachten geen half aangebrachte wijzigingen zien, maar ook om prestatieredenen.

Houd er ook rekening mee dat u altijd tijdelijke aanduidingen moet gebruiken, in plaats van tekenreeksen samen te voegen.
Bijvoorbeeld:

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

Anders loop je het risico SQL-injectie-aanvallen mogelijk te maken.




  1. Er zijn geen primaire of kandidaat-sleutels in de tabel waarnaar wordt verwezen die overeenkomen met de lijst met verwijzende kolommen in de externe sleutel

  2. Hoe krijg ik toegang tot Oracle vanuit Python?

  3. Begrip van opnieuw uitvoeren van loggroep versus bestand versus lid

  4. PHP laadt php_pgsql.dll niet op Windows