Я получаю эту ошибку при настройке своего приложения, создании локальной базы данных и просто вставке пользователя first и только (который вошел в систему локально). Пожалуйста, см. Комментарий в коде, где я получаю сообщение об ошибке.
angular.module("greenApp")
.service("dbService",['$q', function($q){
var db;
var promise = function(){
var deferred = $q.defer();
db = window.openDatabase('greenDB', '1.0', 'Green Database', 2*1024*1024);
db.transaction(function(tx){
tx.executeSql("CREATE TABLE IF NOT EXISTS user (user TEXT PRIMARY KEY) ")
}, function(err){
alert('Something went wrong... Error: DATABASE INIT ' + err);
}, function(scc){
deferred.resolve();
})
return deferred.promise;
}
promise();
var query = function(sql, args) {
var deferred = $q.defer();
db.transaction(function(tx) {
tx.executeSql(sql, args, function(tx, results) {
deferred.resolve(results);
});
}, function(err) {
deferred.reject(err);
});
return deferred.promise;
};
var insert_into = function(args) {
var queryPromise = query("INSERT INTO user (user) VALUES (?)", args);
console.log("in insert_into", queryPromise) // Error message comes here
return queryPromise;
};
return {
promise: promise,
insert_into: insert_into,
};
}]);
Где args
просто ["user-name-string"]
, появляется сообщение об ошибке:
"не удалось выполнить оператор из-за сбоя constaint (19 UNIQUE ограничение не выполнено: user.user)
Любые идеи, что могло произойти? Точно такой же код работал и работал в недавнем чистом проекте cordova, который я только портировал на ионный.