我这里有一个更新数据库的工作函数,但是我想把陷阱放在不接受重复名称的地方。我已经读过有关使用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");
}
我遇到这个问题,任何帮助都会很乐意接受。提前谢谢。
答案 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); });
}