2015-08-14 2 views
0

Я использую sqlite3 с sqlalchemy как слой ORM. У меня есть стол STOPS с идентификаторами столбцов, именем, функцией, добавленным_дайте. Мне нужно удалить из него много строк для того, что я использовалКак сохранить значения столбца для удаляемых строк

session.query(Stop).filter(Stop.id.in_ (stop_id_list)).delete(synchronize_session='fetch') 

Но мне нужно сохранить значения столбца added_date. Можно ли это сделать, не дважды нажав db? Оставляет ли этот объект остановки доступным после его удаления?

+0

Действительно, просто запросите их, а затем удалите строки. Отправка двух запросов в базу данных действительно не имеет большого значения, особенно если это так просто, как выбор данных, отфильтрованных по тому, что, по-видимому, является первичным ключом. – ThiefMaster

ответ

0

Удаленные объекты удаляются.

Для получения значений added_date вам нужен отдельный запрос, но после первого утверждения все данные будут в кеше, поэтому вы на самом деле не нажмете диск дважды.

Для правильности убедитесь, что оба оператора SQL выполнены в том же transaction.

+0

Итак, если я снова сделаю 'session.query (Stop) .filter (Stop.id.in_ (stop_id_list)). All()' тогда я должен правильно получить данные? Но он возвращает пустой список. –

+0

Прочтите первое предложение моего ответа еще раз. Обязательно прочитайте данные перед удалением. –

Смежные вопросы