2014-03-31 55 views
0

我在這裏有一個更新數據庫的工作函數,但我想把一個陷阱,它不會接受重複的名稱。我已經閱讀過有關使用NOT EXISTS語句的內容,但它不會返回它是真的還是不真的。SQLite數據庫更新之前檢查重複

這裏是我的代碼:

function editDB(eName) { 

    var clubDetect = $('#clubDisplay').text(); 

    if (-- condition that checks if the Name exists in the database goes here --) 
     db.transaction(function (tx) { tx.executeSql('UPDATE SoccerPlayer SET Name = ? WHERE Club=?',[ eName, clubDetect ]); });   

    else 
     alert("existing name"); 

} 

我堅持這個問題,任何幫助將欣然接受。提前致謝。

回答

1

您可以在您的WHERE子句中添加一個條件,以防止名稱已存在時的UPDATE。然後你可以在你的回調中檢查rowsAffected來查看UPDATE是否被使用。

事情是這樣的:

function editDB(eName) { 

    var callback = function(tx, results){ 
     if (!results.rowsAffected) { 
      alert("existing name"); 
     } 
    }; 

    var sql = "UPDATE SoccerPlayer SET Name = ? WHERE Club=? AND ? NOT IN (SELECT Name FROM SoccerPlayer)"; 
    db.transaction(function (tx) { tx.executeSql(sql,[ eName, clubDetect, eName ], callback); });   
} 
+0

由於它可以防止現在複製,但它不會觸發回調都沒有。 –