0

SQLite データベースに 1 つのテーブルがあります。

@Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL( "CREATE TABLE book1(_id INTEGER PRIMARY KEY AUTOINCREMENT,title TEXT, author TEXT,isbn TEXT);");

テーブルに新しい列を追加して、DBのバージョン番号を変更しています。

@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