このエラーが発生する理由。私はすでにデータベースを持っています。そして、テーブルを追加してそこにアイテムを挿入します。この手順を制御し、アイテムを挿入してもエラーは発生しません。しかし、新しいテーブルにアイテムを配置したときに、このエラーが発生します。 find.emulator で制御し、デスクトップに .db をプッシュして開きます。表示されます。はい、新しいテーブルはありません。しかし、そうである必要があります。
アプリを削除してアプリを再インストールしても問題はありません。テーブルはそこにあります。しかし、私は再インストールしたくありません。アップグレードしたいのです。これには何ができますか?
package xxxxx;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DatabaseHelper extends SQLiteOpenHelper {
public static final String DB_NAME="xxx.db";
public static final String TABLE_NAME="already_exist";
public static final String TABLE_NAME2="already_exist2";
public static final String TABLE_NAME3="new_table";
public DatabaseHelper(Context context) {
super(context, DB_NAME, null, 2);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE " + TABLE_NAME + "(_id INTEGER PRIMARY KEY AUTOINCREMENT, s TEXT)");
db.execSQL("CREATE TABLE " + TABLE_NAME2 + "(_id INTEGER PRIMARY KEY AUTOINCREMENT, a TEXT,v TEXT)");
db.execSQL("CREATE TABLE " + TABLE_NAME3 + "(_id INTEGER PRIMARY KEY AUTOINCREMENT, x TEXT)");
}
@Override
public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {
}
}