Да, это можно сделать на нативном SQL. Но с ORM или изначально это плохая идея, особенно с 40 строками и 14 столбцами. Если это однократная операция, просто напишите отдельные обновления. Это было бы намного более безопасным вариантом, потому что чем больше вероятность ошибки, тем больше увеличивается. Если это не однократная операция, то нет ничего предсказать эту изменчивость заранее;так что каждый становится единовременным. Но это может быть сделано;Только не:
update animal_groups
set quantity = case when group_id = 2 then 1
when group_id = 4 then 0
else quantity
end
, different_aviaries = case when group_id = 3 then true
else different_aviaries
end
, group_name = case when group_id = 4 then null
else group_name
end
where group_id in (2,3,4);
Обратите внимание, что обновление количества должно учитывать оба изменения значения, поскольку имя столбца может быть ЛЕВОЙ ЗНАЧЕНИЕМ только один раз в выписке.