Javascript 多请求节点js中MySql数据更新和选择同步问题
使用expressJS,我有一个端点连接到mysql数据库,在这里我进行查询,获取一组数据,并通过将字段更新为用户id将第一个返回的结果分配给用户 其概念是,在用户通过点击另一个端点处理行之前,只能将单行分配给单个用户 以下是获取最新未处理行的查询:Javascript 多请求节点js中MySql数据更新和选择同步问题,javascript,mysql,node.js,express,knex.js,Javascript,Mysql,Node.js,Express,Knex.js,使用expressJS,我有一个端点连接到mysql数据库,在这里我进行查询,获取一组数据,并通过将字段更新为用户id将第一个返回的结果分配给用户 其概念是,在用户通过点击另一个端点处理行之前,只能将单行分配给单个用户 以下是获取最新未处理行的查询: const notProcessed = await knex('rows') .select('*'') .whereRaw(`status='Not-Processed' and
const notProcessed = await knex('rows')
.select('*'')
.whereRaw(`status='Not-Processed' and (assignedTo=0 or assignedTo=${user.id})`)
.orderByRaw('createdAt asc')
.first();
在我通过执行以下操作向用户更新行之后:
await knex('rows').update({ assignedTo: user.id }).where({ id: notProcessed.id })
当向端点发送多个请求时,有时我会将同一行分配给多个人
似乎找不到原因或解决办法。有人能解释为什么会发生这种情况,以及解决这一问题的最佳方法是什么吗?这是否回答了您的问题?