0

我使用 websql 进行离线存储。以下 addItem 函数适用于除 Chromium 之外的其他浏览器:

  itemset.webdb.createTable = function() {
     var db = itemset.webdb.db;
     db.transaction(function(tx) {
      tx.executeSql("CREATE TABLE IF NOT EXISTS items(ID INTEGER PRIMARY KEY ASC,        
          item_name TEXT, desp TEXT, due_date DATE)", []);
    });
  }

   itemset.webdb.addItem = function(item_name, desp, due_date) {
        var db = itemset.webdb.db;
        db.transaction(function(tx){
          //var added_on = new Date();
          tx.executeSql("INSERT INTO items(item_name, desp, due_date) VALUES (?,?,?)",
              [item_name,desp,due_date],
              itemset.webdb.onSuccess,
              itemset.webdb.onError);
         });
      }

Chromium 给出错误:“出现错误:无法准备语句(1 个表项没有名为 due_date 的列)”。为什么它不起作用?

4

2 回答 2

1

只需将新字段添加到表中,例如下一个代码:

db.transaction(function(txt))
{
    txt.executeSql("ALTER TABLE items ADD item_name TEXT, desp TEXT, due_date DATE");
}
于 2012-11-08T19:08:01.117 回答
0

创建新表名或删除并创建表。

于 2016-08-23T11:28:34.830 回答