我试图将 SQLite 版本 1 更改为 2,因为我必须增加版本才能向我的表中添加一个新列 (alter)。它运行良好。然后,为了好玩,我尝试将 2 更改为 1,如下所示:
发件人:
public DatabaseHelper(Context context) {super(context, DB_NAME, null, 2);}
收件人:
public DatabaseHelper(Context context) {super(context, DB_NAME, null, 1);}
然后我得到了这个:
FATAL EXCEPTION: main
Process: com.example.android.vocab, PID: 3360
android.database.sqlite.SQLiteException: Can't downgrade database from version 2 to 1
正如我之前所解释的,我们不能在增加 SQLite 版本之后再降低它。所以需要改回2或者大于2:
public DatabaseHelper(Context context) {
super(context, DB_NAME, null, 2);
}
如果您尝试更新您的表格,可能需要通过3 而不是2 并且每次您需要更新表格时,您都需要增加版本(不减少)。
如果你真的想降级版本,你可以覆盖onDowngrade()as @Matthieu 在他的回答中表达。