如果在唯一状态的重复数据条目上将重复值插入数据库,则尝试创建警报条件 我的代码下面作为测试表的示例所有列都是唯一的,并且插入查询有重复的数据输入,我需要显示sql错误
创建查询
var db = openDatabase("demo", "1.0", "demo", 200000);
db.transaction(function(tx) {
tx.executeSql( "CREATE TABLE IF NOT EXISTS test (Slno INTEGER PRIMARY KEY AUTOINCREMENT, column1 TEXT UNIQUE, column2 TEXT UNIQUE, column3 TEXT UNIQUE, column4 TEXT UNIQUE, column5 TEXT UNIQUE)");
});
插入查询
db.transaction(function(tx) {
tx.executeSql("INSERT INTO test (column1, column2 ,column3, column4,column5) VALUES ('insert1','insert2','insert3','insert4','insert5'),('insert1','insert2','insert3','insert4','insert5');");
});
答案 0 :(得分:1)
您可以使用在发生sql错误时调用的错误回调函数。
tx.executeSql(query, values, successHandler, errorHandler);
请注意,错误和成功功能都有空间。
function errorHandler(transaction, error) {
alert("Error : " + error.message);
}
也使用像这样的成功函数
function successHandler (transaction, resultSet) {
if (!resultSet.rowsAffected ) {
// Previous insert failed. Bail.
alert('No rows affected!');
return false;
}else if (resultSet.rowsAffected == 1){
alert("ONLY one row inserted");
}
}
因为您的插入查询确实没有错误,所以它执行正常,但不会插入两个查询。