2013-06-05 27 views
5

私は単純なWebSQLデータベースを1つのテーブルと3つの列を持っています。もう1つの列を追加したいのですが、データベースがすでに存在する場合は実行できません。 キャッシュ内のデータを消去した後でのみ可能ですが、すべてのデータが失われています。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"); 
     }); 
} 

他のすべての更新機能はうまくいきます。

+0

はあなたが私はまったく同じことに取り組んでいます。この解決策を見つけてい –

+0

はい、これは正しい要求です || ALTER TABLE mytable ADD時刻VARCHAR NOT NULL DEFAULT '' ||| (この構文をサポートしていないため、BEFORE、AFTERは使用しないでください) 結果をお知らせください! –

答えて

6

正しい要求がある:

ALTER TABLE mytable ADD time VARCHAR NOT NULL DEFAULT '' 

(前後せず、WebSQLはこの構文をサポートdoes'tので)

関連する問題