0

我的 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 中是有限的,有人请告诉我你可以改变多少次来添加和重命名。

4

1 回答 1

1

您可以根据需要添加任意数量,但一次只能添加一个。见http://www.sqlite.org/lang_altertable.html

将 ALTER TABLE 拆分为两个,每个添加 1 列并尝试

未测试

于 2013-02-01T09:49:57.107 回答