2013-06-05 8 views
5

Tôi có cơ sở dữ liệu đơn giản WebSQL với 1 bảng và 3 cột. Tôi muốn thêm một cột nữa, nhưng tôi không thể làm điều đó nếu cơ sở dữ liệu đã tồn tại. Chỉ có thể sau khi tôi đã xóa nó trong bộ nhớ cache, nhưng sau đó tôi mất tất cả dữ liệu.Làm việc với WebSQL. Cách thêm cột mới vào bảng hiện có?

Làm cách nào để thêm cột mới vào bảng mà không xóa cơ sở dữ liệu?

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

Tất cả các chức năng UPDATE khác đang hoạt động tốt.

+0

có bạn tìm thấy một giải pháp này tôi đang làm việc trên cùng một điều chính xác –

+0

Có, đây là Yêu cầu chính xác ||| ALTER TABLE mytable THỜI GIAN THÊM VARCHAR NOT NULL DEFAULT '' ||| (chỉ không sử dụng TRƯỚC KHI, SAU, vì các căn cứ dựa trên sqlite không hỗ trợ cú pháp này) Hãy cho tôi biết về kết quả! –

Trả lời

6

Yêu cầu chính xác là:

ALTER TABLE mytable ADD time VARCHAR NOT NULL DEFAULT '' 

(không trước, sau, bởi vì WebSQL does't hỗ trợ cú pháp này)