我在angularJS中使用WEB-SQL。我每次启动应用程序时都面临的问题是,它将尝试上传应用程序的主数据,并得到错误:唯一约束失败:
我试图用下面的逻辑来解决这个问题,但它不起作用,我也不确定这是不是最好的做法。
请指导如何处理数据库API的最佳实践。我在这里检查
function checkTableExist(){
var query = "SELECT * from sqlite_master where type='table' and name = 'test'",
defer = $q.defer();
db.transaction(function(tx){
tx.executeSql(query,[], function( response ){
if(typeof(response.rows)){
defer.resolve(false);
}
else{
defer.resolve(true);
}
}, function(){
defer.resolve(false);
});
});
return defer.promise;
}当我的应用程序启动时,我调用此方法来检查表是否存在。
如果result为false,我将创建表格并将数据插入表格中。如果result为true,我不想创建表并向其中插入数据。
我无法做到这一点。
任何支持都会有很大的帮助。
提前谢谢。
发布于 2016-04-28 18:26:13
这不是您问题的确切答案,但是您可以通过像这样更改您的sql查询来消除您的错误:唯一约束失败:
CREATE TABLE if not exists sqlite_master();
INSERT OR REPLACE INTO sqlite_master VALUES();通过这种方式,您可以在每次启动应用程序时插入相同的数据。我希望这能对你有所帮助。
https://stackoverflow.com/questions/36868960
复制相似问题