首页 > 解决方案 > 如何在android studio上创建一个新表到数据库中?

问题描述

我正在使用sqlite数据库开发一个android项目,在创建数据库后我意识到我需要一个新表,所以我尝试将它添加到我的SQLiteOpenHelper类中

  BaseDeDatos.execSQL("create table viaje(id_viaje integer primary key, tiempo integer, revs integer,  esfzosub integer, esfzobaj integer)");

但是当我运行应用程序并按下按钮时,我的应用程序崩溃并给了我以下消息:

android.database.sqlite.SQLiteException: no such column: sfzosub (code 1): , while compile: UPDATE viaje SET sfzosub=?,sfzobaj=?,id_viaje=?,id_categoria=? WHERE codigo=1

我看到问题是数据库上的更改不是我尝试重新启动android studio,重建应用程序,但我仍然有同样的问题,我该如何更改我的数据库?

标签: javaandroiddatabasesqliteandroid-sqlite

解决方案


现在最大的问题是您将新表的创建称为何处?如果你这样做

public void onCreate(SQLiteDatabase db)

您的代码不会被执行,因为数据库已经存在!

要正确处理,请将其添加到

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    db.execSQL(YOUR_STRING);

然后将数据库的版本更改为更高的数字。当您重新启动应用程序时,它将看到一个新版本并运行onUpgrade.


推荐阅读