使用WebSQL:如何向现有表添加新列?

5

我有一个简单的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");
       });
}

所有其他的更新功能都正常工作。

你找到解决方案了吗?我正在处理完全相同的事情。 - Prakash Chennupati
是的,这是一个正确的请求 ||| ALTER TABLE mytable ADD time VARCHAR NOT NULL DEFAULT '' ||| (只是不要使用BEFORE、AFTER,因为基于sqlite的数据库不支持这种语法) 让我知道结果! - sergey_c
1个回答

6
正确的请求是:
ALTER TABLE mytable ADD time VARCHAR NOT NULL DEFAULT '' 

(由于 WebSQL 不支持此语法,因此不包括 BEFORE、AFTER)


如何检查列是否存在。 - hatanooh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接