これはPythonDB-APIの欠陥です。トランザクションを開始します。それはすべきではありません。トランザクションを開始するかどうか、いつ開始するかは、プログラマー次第です。このような低レベルのコアAPIは、開発者を悩ませたり、背後でトランザクションを開始したりするべきではありません。私たちは大きな男の子です。自分で取引を開始できます。ありがとうございます。
psycopg2では、API拡張機能を使用してこの不幸な動作を無効にすることができます。connection.autocommit = True
を実行します。 。残念ながら、このための標準APIはありません。そのため、トランザクションの外部で実行する必要のあるコマンドを発行するには、非標準の拡張機能に依存する必要があります。
いぼのない言語はありません。これはPythonの1つです。私も以前にこれに噛まれたことがあります。