【问题标题】:SQLite - could not execute statement due to a constraint failed (19 constraint failed)SQLite - 由于约束失败而无法执行语句(19 约束失败)
【发布时间】:2014-01-30 23:09:16
【问题描述】:

我开始为 PhoneGap 应用程序使用 SQLite 和 Javascript,这里的事情是我正在使用 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 cordova insert


【解决方案1】:

虽然这是一个老问题,但我面临类似的情况,我为解决它所做的只是删除表并重新创建它。 发生的事情是,在我将列编辑为新列之后,我试图插入表中不存在的列..

【讨论】:

    猜你喜欢
    • 2021-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多