在SQLite数据库更新之前检查重复项

时间:2014-03-31 20:27:51

标签: javascript android sqlite jquery-mobile

我这里有一个更新数据库的工作函数,但是我想把陷阱放在不接受重复名称的地方。我已经读过有关使用NOT EXISTS语句的内容,但它不会返回真实与否的地方。

这是我的代码:

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 个答案:

答案 0 :(得分:1)

您可以在WHERE子句中添加一个条件,以便在名称已存在时阻止UPDATE。然后,您可以在回调中查看rowsAffected以查看更新是否已完成。

这样的事情:

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); });        
}