如何使用websql将新列添加到现有表

时间:2017-11-23 13:34:49

标签: javascript angularjs sqlite cordova web-sql

我有一个Android应用程序(使用cordova创建)已经存在且正在使用中。有些数据存储在设备数据库中。我必须进行更新,需要在数据库中的一个表中添加一列。我想添加新列而不需要清除应用程序存储,所以我创建了一个函数,尝试在执行依赖于该表的其他函数之前添加新列。这是改变代码的代码

var alterEntryTable = function()
{
    qObj = $q.defer();

    dbService.db.transaction(function(tx) {

        tx.executeSql(
            'ALTER TABLE entry ADD created_at TIMESTAMP ',
            [],
            function (tx, rss) {
                qObj.resolve({error: false});
            }, function (tx, rss) {
                qObj.resolve({ error: true});
            }
        );
    });

    return qObj.promise;
};

问题是它总是返回错误。有人帮忙。谢谢

1 个答案:

答案 0 :(得分:0)

错误处理程序中的第二个参数是SQLError对象。您可以记录其message属性以获取有关错误的详细信息。

function (tx, rss) {
    console.log(rss.message);
    qObj.resolve({ error: true});
}

错误消息是否有帮助?我认为您在SQL中缺少COLUMN。它应该是ALTER TABLE entry ADD COLUMN created_at TIMESTAMP

此外timestamp不是datatype in SQLite,但将其保留在那里无害。