Я использую SQLAlcehemy в Python для управления обновлениями данных и вставками. Я ищу более удобный способ при выполнении запроса - проверьте, существует ли искомое значение, если да, обновите его, если необходимо, и, если нет, создайте новую строку. Вот пример того, как я в настоящее время делаю это с моими текущими session
и таблицей Persons
.
temp = session.query(Persons).filter(Person=='Mark')
IsDirty = False
if temp.count() == 0:
new_person = Person()
new_person.PersonName = 'Mark'
...
session.add(new_person)
IsDirty = True
elif temp.count() == 1:
temp = temp.first()
if temp.PersonName != 'Mark':
temp.PersonName = 'Mark'
...
IsDirty = True
if IsDirty:
session.commit()
. Это кажется очень громоздким, чтобы в основном присваивать или проверять значения каждого элемента с помощью в таблице Persons
(не отображаются все только с использованием ...
). Было бы неплохо сделать это более упорядоченным. У кого-нибудь есть мысли?