Jest to wada Python DB-API:rozpoczyna transakcję za Ciebie. Nie powinno tego robić; czy i kiedy rozpocząć transakcję powinno zależeć od programisty. Niskopoziomowe, podstawowe interfejsy API, takie jak ten, nie powinny niańczyć programisty i robić takich rzeczy, jak rozpoczynanie transakcji za naszymi plecami. Jesteśmy dużymi chłopcami – dzięki, możemy sami rozpocząć transakcje.
Dzięki psycopg2 możesz wyłączyć to niefortunne zachowanie za pomocą rozszerzenia API:uruchom connection.autocommit = True
. Niestety nie ma do tego standardowego API, więc musisz polegać na niestandardowych rozszerzeniach, aby wydawać polecenia, które muszą być wykonywane poza transakcją.
Żaden język nie jest pozbawiony brodawek, a to jest jeden z języków Pythona. Już mnie to ugryzło.