2013-06-05 14 views
5

Mam prostą bazę danych WebSQL z 1 tabelą i 3 kolumnami. Chciałbym dodać jeszcze jedną kolumnę, ale nie mogę tego zrobić, jeśli baza danych już istnieje. Jest to możliwe tylko po wyczyszczeniu go w pamięci podręcznej, ale wtedy tracę wszystkie dane.Praca z WebSQL. Jak dodać nową kolumnę do istniejącej tabeli?

Jak dodać nową kolumnę do tabeli bez usuwania bazy danych?

// 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"); 
     }); 
} 

Wszystkie inne funkcje UPDATE działają poprawnie.

+0

masz znaleźli rozwiązanie tego pracuję na dokładnie to samo –

+0

Tak, jest to poprawny wniosek ||| ALTER TABLE mytable ADD time VARCHAR NOT NULL DEFAULT '' ||| (po prostu nie używaj PRZED, PO, ponieważ bazujące na sqlite nie obsługuje tej składni) Daj mi znać o wyniku! –

Odpowiedz

6

Prawidłowe Zapytanie jest:

ALTER TABLE mytable ADD time VARCHAR NOT NULL DEFAULT '' 

(bez przed, po, ponieważ WebSQL does't obsługuje tej składni)

Powiązane problemy