【问题标题】:Working with WebSQL. How to add new column to existing table?使用 WebSQL。如何将新列添加到现有表?
【发布时间】:2013-06-05 07:32:47
【问题描述】:

我有一个简单的WebSQL 数据库,有 1 个表和 3 个列。我想再添加一列,但如果数据库已经存在,我就不能这样做。 只有在我在缓存中清理它之后才有可能,但是我会丢失所有数据。

如何在不删除数据库的情况下向表中添加新列?

// database creating
MYDB.init.open = function(){
       MYDB.init.db = openDatabase("MYDB","1.0"," super-data-base",1024*1024*5);
}


//table creating    
MYDB.init.createTable = function(){
           var database = MYDB.init.db;
           database.transaction(function(tx){
                  tx.executeSql("CREATE TABLE IF NOT EXISTS mytable (ID INTEGER PRIMARY KEY ASC,item TEXT,description TEXT)", []);
           });
    }

//
//a lot of code for adding datas and reading datas
//

//database updating that does not work
MYDB.init.updateTable = function(){
       var database = MYDB.init.db;
       database.transaction(function(tx){
              tx.executeSql("ALTER TABLE mytable ADD time VARCHAR NOT NULL BEFORE description");
       });
}

所有其他 UPDATE 功能都运行良好。

【问题讨论】:

  • 你找到解决方案了吗?我正在做同样的事情
  • 是的,这是一个正确的请求 ||| ALTER TABLE mytable 添加时间 VARCHAR NOT NULL DEFAULT '' ||| (只是不要使用 BEFORE、AFTER,因为基于 sqlite 的基础不支持这种语法)让我知道结果!

标签: javascript sql web-sql


【解决方案1】:

正确的请求是:

ALTER TABLE mytable ADD time VARCHAR NOT NULL DEFAULT '' 

(没有BEFORE,AFTER,因为WebSQL不支持这种语法)

【讨论】:

  • 如何检查列是否存在。
猜你喜欢
  • 1970-01-01
  • 2019-04-15
  • 2014-10-18
  • 1970-01-01
  • 1970-01-01
  • 2019-08-11
  • 2022-11-16
  • 2015-07-20
  • 1970-01-01
相关资源
最近更新 更多