2017-02-13 63 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

这里有两种不同的方式

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

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