2013-06-05 33 views
5

我有簡單的WebSQL數據庫與1表和3列。我想再添加一列,但如果數據庫已經存在,我無法做到這一點。 只有在清除緩存後纔有可能,但是我丟失了所有數據。使用WebSQL。如何將新列添加到現有表?

如何在不刪除數據庫的情況下將新列添加到表中?

// 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函數運行良好。

+0

讓你找到了解決這個我是完全一樣的東西 –

+0

工作是的,這是一個正確的請求 ||| ALTER TABLE mytable添加時間VARCHAR NOT NULL DEFAULT''||| (只是不要使用BEFORE,AFTER,因爲基於sqlite的基礎不支持這種語法) 讓我知道一個結果! –

回答

6

正確的請求是:

ALTER TABLE mytable ADD time VARCHAR NOT NULL DEFAULT '' 

(不含之前,之後因爲簡化版,的WebSQL支持這個語法)

相關問題