SQLite - 由于约束失败而无法执行语句(19约束失败)

时间:2014-01-30 23:09:16

标签: javascript sqlite cordova insert

我开始使用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”,那就是CORRECT !, 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();
    };

以下是消息显示的时间。任何想法??

1 个答案:

答案 0 :(得分:0)

虽然这是一个老问题,但我面临着类似的情况,我所做的就是放弃表并重新创建它。 发生的事情是我在将列编辑成新列之后尝试插入表中不存在的列中。