Return a context manager delivering a :class:`_engine.Connection` with a :class:`.Transaction` established. E.g.:: with engine.begin() as conn: conn.execute(text("insert into table (x, y, z) values (1, 2, 3)")) conn.execute(text("my_speci
(self)
| 3233 | |
| 3234 | @contextlib.contextmanager |
| 3235 | def begin(self) -> Iterator[Connection]: |
| 3236 | """Return a context manager delivering a :class:`_engine.Connection` |
| 3237 | with a :class:`.Transaction` established. |
| 3238 | |
| 3239 | E.g.:: |
| 3240 | |
| 3241 | with engine.begin() as conn: |
| 3242 | conn.execute(text("insert into table (x, y, z) values (1, 2, 3)")) |
| 3243 | conn.execute(text("my_special_procedure(5)")) |
| 3244 | |
| 3245 | Upon successful operation, the :class:`.Transaction` |
| 3246 | is committed. If an error is raised, the :class:`.Transaction` |
| 3247 | is rolled back. |
| 3248 | |
| 3249 | .. seealso:: |
| 3250 | |
| 3251 | :meth:`_engine.Engine.connect` - procure a |
| 3252 | :class:`_engine.Connection` from |
| 3253 | an :class:`_engine.Engine`. |
| 3254 | |
| 3255 | :meth:`_engine.Connection.begin` - start a :class:`.Transaction` |
| 3256 | for a particular :class:`_engine.Connection`. |
| 3257 | |
| 3258 | """ # noqa: E501 |
| 3259 | with self.connect() as conn: |
| 3260 | with conn.begin(): |
| 3261 | yield conn |
| 3262 | |
| 3263 | def _run_ddl_visitor( |
| 3264 | self, |