首页 > 解决方案 > 当它显然应该生成 2 个表时,为什么会生成 1 个表?

问题描述

因此,我正在 Android Studio 中开发一个项目,并且遇到了 SQLite 内置库中的意外行为。我正在编写代码,它至少应该生成 2 个表,一个是用户,另一个是 weightTable,它只生成用户。

我遇到了另一个问题,它说 execSQL 只需要一个语句,但是将 2 个表合并到一个 execSQL 似乎也不起作用

代码:




import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.widget.EditText;
import android.widget.Toast;

public class DBHelper extends SQLiteOpenHelper {

    public static final String DB_NAME = "Login.db";

    public DBHelper(Context context)
    {
        super(context,DB_NAME,null,1);
    }

    @Override
    public void onCreate(SQLiteDatabase myDB) {

        myDB.execSQL("create Table users(username TEXT primary key, password TEXT)"); 
        myDB.execSQL("create Table weightTable(username TEXT,date TEXT, weight INT)");


    }

    @Override
    public void onUpgrade(SQLiteDatabase myDB, int i, int i1) {
       myDB.execSQL("drop Table if exists users");
       myDB.execSQL("drop Table if exists weightTable");

    }
}

还有其他插入和提取数据的方法与此问题无关,因此将被忽略。

标签: sqldatabasesqliteandroid-studio

解决方案


推荐阅读