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)
| 3198 | |
| 3199 | @contextlib.contextmanager |
| 3200 | def begin(self) -> Iterator[Connection]: |
| 3201 | """Return a context manager delivering a :class:`_engine.Connection` |
| 3202 | with a :class:`.Transaction` established. |
| 3203 | |
| 3204 | E.g.:: |
| 3205 | |
| 3206 | with engine.begin() as conn: |
| 3207 | conn.execute(text("insert into table (x, y, z) values (1, 2, 3)")) |
| 3208 | conn.execute(text("my_special_procedure(5)")) |
| 3209 | |
| 3210 | Upon successful operation, the :class:`.Transaction` |
| 3211 | is committed. If an error is raised, the :class:`.Transaction` |
| 3212 | is rolled back. |
| 3213 | |
| 3214 | .. seealso:: |
| 3215 | |
| 3216 | :meth:`_engine.Engine.connect` - procure a |
| 3217 | :class:`_engine.Connection` from |
| 3218 | an :class:`_engine.Engine`. |
| 3219 | |
| 3220 | :meth:`_engine.Connection.begin` - start a :class:`.Transaction` |
| 3221 | for a particular :class:`_engine.Connection`. |
| 3222 | |
| 3223 | """ # noqa: E501 |
| 3224 | with self.connect() as conn: |
| 3225 | with conn.begin(): |
| 3226 | yield conn |
| 3227 | |
| 3228 | def _run_ddl_visitor( |
| 3229 | self, |