我的 SQLite 数据库中有一张表。
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL( "CREATE TABLE book1(_id INTEGER PRIMARY KEY AUTOINCREMENT,title TEXT, author TEXT,isbn TEXT);");
我正在表中添加新列并更改数据库的版本号。
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("ALTER TABLE book1 ADD COLUMN Cost TEXT");
Log.v("Alter Table", "Colunm Added enjoy"+db.getVersion());
db.execSQL("INSERT into book1 (title,author,isbn,Cost,city) VALUES('php','Lioneworge',1111,1500)");
它在我的表中添加新列。
但是如果我想在我的这个表中再次添加新列。版本 2 到 3
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("ALTER TABLE book1 ADD COLUMN Cost TEXT,city TEXT");
db.execSQL("INSERT into book1 (title,author,isbn,Cost,city) VALUES('php','Lioneworge',1111,1500,'Hydrabad')");
它显示了这个
Caused by: Can't upgrade read-only database from version 2 to 3
我不想在升级时丢失我的数据,这就是我不使用删除查询的原因。
更新:-我读到这个 ALTER TABLE 在 sqlite 中是有限的,有人请告诉我你可以改变多少次来添加和重命名。