Извините, что похоже, что это может быть дубликат. Я знаком с несколькими обновлениями в Postgres ... но я не могу показаться, чтобы выяснить путь вокруг этого ...Postgres multi-update с несколькими случаями `where`
У меня есть photos
таблицу со следующими столбцами: id
(первичный ключ), url
, sort_order
, и owner_user_id
.
Мы хотели бы разрешить нашему интерфейсу разрешить пользователю изменять порядок существующих фотографий в виде коллекции. В этом случае, когда взаимодействие перетаскивания перезаказа завершено, я могу послать POST
тела нашего API следующие:
req.body.photos = [{id: 345, order: 1, id: 911, order: 2, ...<etc>}]
В этом случае я могу развернуться и выполнить следующий запрос в цикле в каждый элемент массива.
photos.forEach(function (item) {
db.runQuery('update photos set sort_order=$1 where id=$2 and owner_user_id=$3', [item.order, item.id, currentUserId])
})
В общем, это как правило, неодобрительно для выполнения запросов к базе данных внутри петли, так что если есть в любом случае это может быть сделано с 1 запросом, который был бы фантастическим.
Большое спасибо заранее.
примечание, помеченное как обман, потому что это mysql, но ... http://stackoverflow.com/questions/40623132/making-changes-to-multiple-records-based-on-change-of-single-record- с-sql/40624979 # 40624979 – e4c5