Неуспешна актуализация на Azure SQL база данни

Използвам мобилните услуги на Azure с приложение за android, което се опитвам да накарам да работи със SQL база данни в Azure. Използвам JavaScript функция от страна на сървъра в рамките на мобилните услуги, за да се справя с вмъкването и актуализирането на данни. Вмъкването на нови данни работи правилно, но не мога да актуализирам никакви редове с функцията.

Грешката, която получих, е: 409 - грешка: Не можах да вмъкна елемента, защото вече съществува елемент с този идентификатор. Изглежда, че се опитва да вмъкне вместо актуализация, но не мога да разбера решението. Помощта е много ценена! Ето моя сървърен скрипт от 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)
            }
        });
    }
  }
}    

comment
Дубликат на stackoverflow.com/questions/29266012/   -  person Eric Hedstrom    schedule 26.03.2015


Отговори (1)


За първоначалната си заявка искате да направите заявка чрез полето id:

table.where({
    id: item.id
}).read({
    success: upsertItem
});
person Eric Hedstrom    schedule 26.03.2015