Встречается на собеседованиях • сегодня
В чем разница между commit и flush в SQLAlchemy
commit и flush в SQLAlchemy выполняют разные функции, хотя оба связаны с отправкой изменений в БД.
flush() синхронизирует сессию с БД, отправляя pending изменения (INSERT, UPDATE, DELETE), но не фиксирует транзакцию. Изменения видны в текущей транзакции, но могут быть откачены. Пример:
python
session.add(user)
session.flush() # SQL отправлен, но транзакция не завершенаcommit() фиксирует транзакцию, выполняя неявный flush, и делает изменения постоянными. После commit() новая транзакция начинается автоматически:
python
session.commit() # Изменения сохранены в БДКлючевые отличия:
flushне завершает транзакцию,commit- завершает- После
flushможно откатить изменения, послеcommit- нет commitавтоматически вызываетflush

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы