update (), save_or_update (), save ()
все устарело. add () помещает
объект в сеансе во всех случаях,
используя информацию о постоянстве
уже связаны с объектом
определить ВСТАВИТЬ или ОБНОВИТЬ. этот
значит, если вы просто сделаете новый
Foo (id = некоторый идентификатор), это временно -
SQLAlchemy не загружал его. Это будет
Вставленные.
Имейте в виду, что
Сессия поддерживает личную карту
все уникальные первичные ключи уже
загружен в память, а также
состояние, которое было получено от
база данных. По этой причине вы
как правило, не может просто положить объект в
сеанс с некоторыми произвольными данными,
и ожидать, что это "займет место"
фактическая строка, которая будет загружена
перевод. SQLAlchemy не будет
знать, что с ним делать, так как он имеет
понятия не имею, какие изменения были сделаны
в этом ряду по сравнению с тем, что уже
подарок.
Если вы хотите создать
новый Foo () с первичным ключом, который может
или, возможно, еще не существует в
база данных, вы хотите объединить государство
этого объекта с тем, который является
производится сессией. использование
session.merge () для этого варианта использования.
это загрузит существующий объект
из текущей транзакции, если есть,
и объединить состояние вашего снаружи
возразить с ним, возвращая
пример. Экземпляр, который вы передаете ему
остается неизменным и вне
сессия.