2017-02-13 10 views
0

Как мы получаем Knex создать следующий SQL заявление:Knex.js - Как обновить поле с выражением

UPDATE item SET qtyonhand = qtyonhand + 1 WHERE rowid = 8 

настоящий момент мы используем следующий код:

knex('item') 
    .transacting(trx) 
    .update({qtyonhand: 10}) 
    .where('rowid', 8) 

Однако для того, чтобы наше приложение инвентаризации работало в многопользовательской среде, нам нужно значение qtyonhand для добавления или вычитания с тем, что на самом деле находится в базе данных в данный момент, вместо того, чтобы передавать значение, которое может быть устаревшим, к тому времени, когда инструкция обновления казнены.

ответ

3

Вот 2 разные способы

knex('item').increment('qtyonhand').where('rowid',8) 

или

knex('item').update({ 
    qtyonhand: knex.raw('?? + 1', ['qtyonhand']) 
}).where('rowid',8)