2014-01-29 2 views
3

Если атрибуты экземпляра назначены с тем же значением, будет ли commit вести запись в базу данных? Я просто задаюсь вопросом, полезно ли обновлять атрибуты, не проверяя, действительно ли существующее значение отличается от нового значения.Присвоить такое же значение атрибуту экземпляра

+0

Я не могу точно сказать, но если бы это было так, реализация действительно сосала бы. – Hyperboreus

ответ

3

ORM проверяет значение при промывке и создает обновления только по измененным значениям. Цитируя documentation:

На время промывки, значение каждого атрибута сравнивается с его ранее сохраненного значения, и если нет никакого чистого изменения, ни операции SQL будет происходить (это более дорогая операция, так что это только сделано при времени промывки).

+0

Вижу. Так что хорошая практика просто назначать значения в логике, не проверяя чистое изменение? То есть, нажмите проверочную работу на sqla. – Kar

+0

Несомненно. Логика уже находится в SQLAlchemy, поэтому зачем ее дублировать. – tuomur

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