我目前有一项交易试图将数据列入表格。 如果数据已经列入表格,就会发现一个制约因素失败的错误,而一个选择是用来获取该数据。
t2.executeSql( INSERT INTO books (book) VALUES (?); ,
[record],
function (t2, r) { // SQL_successfulCallback
record = r.insertId;
},
function (t2, err) { // SQL_errorCallback
if (err.message !== constraint failed ) { // insert failed because of other
// reason - fail transaction
console.log( Insert SQL error + err.code + - + err.message + . );
return true;
} else { // insert failed because data was already in the table
t2.executeSql( SELECT bookID FROM books WHERE book=? ,
[record],
function (t, r) { // SQL_successfulCallback
record = r.rows.item(0).classificationID;
},
function (t, err) { // SQL_errorCallback
console.log( Lookup SQL error + err.code + - + err.message + . );
return true;
}
);
return false;
}
}
);
我想加快交易速度,因此我认为,我会看到数据是否列在表上。 如果有的话,插入......
t2.executeSql( SELECT bookID FROM books WHERE book=? ,
[record],
function (t2, r) { // SQL_successfulCallback
if (r.rows.length !== 0) {
record = r.rows.item(0).bookID;
} else {
t2.executeSql( INSERT INTO books (book) VALUES (?); ,
[record],
function(t2, r){ // SQL_successfulCallbac
record = r.insertId;
},
function (t2, err) { // SQL_errorCallback
if (err.message !== constraint failed ) { // insert failed because of other
// reason - fail transaction
console.log( Insert SQL error + err.code + - + err.message + . );
return true;
} else { // insert failed because data was already in the table
return false;
}
}
);
}
},
function (t, err) { // SQL_errorCallback
console.log( Lookup SQL error + err.code + - + err.message + . );
return true;
}
);
......但它没有工作。 这一交易使用所有选择,然后使用这些词语。 我如何使第二种方法发挥作用?