我开始使用SQLite和Javascript进行PhoneGap应用程序,这里的事情是我正在使用Web服务并将行添加到本地sqlite数据库中。在这种情况下,我要插入的项目长度恰好是1016,但它只插入少于100个,并且“由于约束失败(19约束失败)而无法执行语句”不断出现。

这是代码的一部分:

function onSuccessCustomers(data){
    alert("CLIENTES: " + data.length);
    $.each(data, function(i, item) {
         database.executeQuery("INSERT INTO cliente1 (codcli) VALUES ('" + item.CODCLI + "')");
    });
}


这里的警报显示“ CLIENTES:1016”,这就是正确的提示,foreach也可以连续运行1016次。但是当我检查表时,仅插入了几行。

这是executeQuery函数:

function executeQuery (query) {
        var deferred = $.Deferred();

        getInstance().transaction(function(tx) {
            tx.executeSql(query, [], function(tx, r) {
                deferred.resolve(r);
            }, function(tx, e) {
                alert(e.message);
                deferred.fail(e);
            });
        });
        return deferred.promise();
    };


这是消息出现的时间。有任何想法吗??

最佳答案

尽管这是一个古老的问题,但我遇到了类似的情况,并且解决该问题的所有方法是删除表并再次创建它。
发生的事情是我在将列编辑为新列之后尝试插入表中不存在的列。

关于javascript - SQLite-由于约束失败而无法执行语句(19个约束失败),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21469398/

10-11 03:38