Warum hat die Verbindung in der Python-DB-API keinen Startvorgang?

Ich habe mit Cursorn in MySQL-Python gearbeitet und "BEGIN;", "COMMIT;" und "ROLLBACK;" ausdrücklich wie folgt:

try:
    cursor.execute("BEGIN;")
    # some statements
    cursor.execute("COMMIT;")
except:
    cursor.execute("ROLLBACK;")

dann fand ich heraus, dass das zugrunde liegende Verbindungsobjekt die entsprechenden Methoden hat:

try:
    cursor.connection.begin()
    # some statements
    cursor.connection.commit()
except:
    cursor.connection.rollback()

Inspektion derDB-API PEP Ich habe herausgefunden, dass die Methode begin () für das Verbindungsobjekt nicht erwähnt wird, auch nicht für die Erweiterungen.

Mysql-Python löst übrigens die DeprecationWarning aus, wenn Sie die Methode verwenden. sqlite3.connection verfügt beispielsweise überhaupt nicht über die Methode.

Und die Frage ist, warum es im PEP keine solche Methode gibt? Ist die Anweisung irgendwie optional, reicht es aus, stattdessen commit () aufzurufen?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage