Dit is een fout in de Python DB-API:het start een transactie voor u. Het zou dat niet moeten doen; of en wanneer een transactie moet worden gestart, moet aan de programmeur zijn. Lage, kern-API's zoals deze zouden de ontwikkelaar niet moeten babysitten en dingen doen zoals het starten van transacties achter onze rug om. We zijn grote jongens - we kunnen zelf transacties starten, bedankt.
Met psycopg2 kunt u dit ongelukkige gedrag uitschakelen met een API-extensie:voer connection.autocommit = True
uit . Hier is helaas geen standaard API voor, dus je bent afhankelijk van niet-standaard extensies om opdrachten uit te voeren die buiten een transactie om moeten worden uitgevoerd.
Geen enkele taal is zonder wratten, en dit is er een van Python. Ik ben hier ook eerder door gebeten.