Este caso de uso particular se destaca en "Comprender la confirmación automática":
El control total del comportamiento de "compromiso automático" está disponible mediante el Connection.execution_options()
generativo método proporcionado en Connection
, Engine
, Executable
, usando el indicador de "autocommit" que activará o desactivará la autocommit para el alcance seleccionado. Por ejemplo, un text()
construcción que representa un procedimiento almacenado que confirma podría usarlo para que una declaración SELECT emita un COMMIT:
engine.execute(text("SELECT my_mutating_procedure()").execution_options(autocommit=True))
La forma en que la confirmación automática de SQLAlchemy detecta las operaciones de cambio de datos es que compara la declaración con un patrón, buscando cosas como ACTUALIZAR, ELIMINAR y similares. Es imposible que detecte si una función/procedimiento almacenado realiza mutaciones, por lo que se proporciona un control explícito sobre la confirmación automática.
La secuencia se incrementa incluso en caso de falla porque nextval()
y setval()
las llamadas nunca se revierten.