Урок 82. MySQL. Транзакции
⚡ Кратко: суть темы
MySQL. Транзакции — учимся управлять соединением с базой: подключаться без указания базы, выбирать её через USE, получать строки как словари через DictCursor, фиксировать изменения через commit(), массово вставлять данные через executemany() и откатывать ошибки через rollback().
- Подключение без
database=...позволяет создавать базы и переключаться между ними. DictCursorвозвращает строки в виде словарей с именами колонок в качестве ключей.- После
INSERT,UPDATE,DELETEобязательно вызывайconnection.commit(). executemany()выполняет один SQL-запрос с разными наборами параметров.- Внутри транзакции используй
try ... except ... finally: при ошибке —rollback(), при успехе —commit().
Что запомнить: изменяющие запросы не сохраняются без commit(), а rollback() спасает данные при ошибке.
Частая ошибка: забыть вызвать commit() после вставки — данные исчезнут после закрытия соединения.
📖 О чём этот урок
После того как мы научились подключаться к MySQL и выполнять простые запросы, разберём более гибкие сценарии работы с базой: как подключиться без выбора конкретной базы, как получать результаты в удобном виде словарей, как сохранять изменения и как защитить данные от частичных обновлений через транзакции.
Что изучим
- Подключение к серверу без указания базы данных и выбор базы через
USE. - Использование
DictCursorдля доступа к результатам по именам колонок. - Метод
commit()для фиксации измененийINSERT,UPDATE,DELETE. - Подключение к серверу с правами на изменение структуры базы.
- Метод
executemany()для массовых операций. - Транзакции и метод
rollback()для отката изменений при ошибках.
📚 Что повторить перед изучением
- ← Урок 80: MySQL и Python — подключение, курсор, параметризованные запросы.
- ← Урок 81: Практикум 20 — закрепление работы с PyMySQL.
- Исключения и конструкция
try ... except(урок 48). - Контекстный менеджер
with(урок 52). - Словари и распаковка
**config(уроки 34–36).