我的查询如下:
SET @count = 0; UPDATE table SET table.id = @count:= @count + 1 WHERE table.name = "name";
如果我通过控制台执行它,或者像Jetbrains Datagrip那样执行它,它可以很好地工作,但当我通过Knex作为原始查询推送它时,它会响应一个mysql ER_PARSE_ERROR。
我做了一些测试,看起来Knex不明白@count是什么。
有什么想法吗?如果可以使用Knex方法对其进行格式化,我真的很感激提示
答案 0 :(得分:0)
我想您可以使用事务承诺来增加count
,将其写为Knex.js查询:
var count = 0;
knex.transaction(function(trx){
knex('table')
.where('name', '=', 'name')
.update(({
id: count
});
})
.then(()=>++count);