Toto je chyba v Python DB-API:zahájí transakci za vás. Nemělo by to dělat; zda a kdy zahájit transakci, by mělo být na programátorovi. Nízkoúrovňová základní rozhraní API, jako je toto, by neměla hlídat vývojáře a dělat věci, jako je zakládání transakcí za našimi zády. Jsme velcí kluci – můžeme začít transakce sami, díky.
Pomocí psycopg2 můžete toto nešťastné chování zakázat pomocí rozšíření API:spusťte connection.autocommit = True
. Bohužel pro to neexistuje žádné standardní API, takže se musíte spolehnout na nestandardní rozšíření, abyste mohli vydávat příkazy, které je třeba provést mimo transakci.
Žádný jazyk není bez bradavic a toto je jeden z Pythonů. Taky mě to už kouslo.