首页 文章

更新Azure SQL数据库故障

提问于
浏览
0

我正在使用Azure移动服务和Android应用程序,我试图在Azure中使用SQL数据库 . 我在移动服务中使用服务器端JavaScript函数来处理数据的插入和更新 . 插入新数据可以正常运行,但我无法使用该功能更新任何行 .

我收到的错误是:409 - 错误:无法插入该项目,因为具有该ID的项目已存在 . 好像它试图插入而不是更新,但我无法弄清楚解决方案 . 非常感谢帮助!这是Azure的服务器端脚本:

function insert(item, user, request) {
  var table = tables.getTable('Reviews');
  table.where({
    text: item.id
  }).read({
    success: upsertItem
    });

  function upsertItem(existingItems) {
    if (existingItems.length == 0) {
        item.numReviews = 1;
        item.rating = item.reviews;
        request.execute();
    } else {
        item.id = existingItems[0].id;
        item.numReviews = existingItems[0].numReviews + 1;
        var average = existingItems[0].reviews / item.numReviews;
        item.reviews = existingItems[0].reviews + item.reviews;
        item.rating = average;
        table.update(item, {
            success: function(updatedItem) {
                request.respond(200, updatedItem)
            }
        });
    }
  }
}

1 回答

  • 0

    对于初始查询,您希望通过id字段进行查询:

    table.where({
        id: item.id
    }).read({
        success: upsertItem
    });
    

相关问题