在android中执行sql

在android中执行sql,android,sqlite,Android,Sqlite,我试图在sqlite android开发中创建表。我的问题是,只创建了一个表,而另一个表没有创建 下面是我如何创建它们的 @Override public void onCreate(SQLiteDatabase db) { try { db.execSQL(DATABASE_CREATE); db.execSQL(DATABASE_CREATE2); } c

我试图在sqlite android开发中创建表。我的问题是,只创建了一个表,而另一个表没有创建

下面是我如何创建它们的

    @Override
    public void onCreate(SQLiteDatabase db) 
    {
        try
        {
            db.execSQL(DATABASE_CREATE);
            db.execSQL(DATABASE_CREATE2);
        }
        catch(SQLException e)
        {
            e.printStackTrace();
        }
    }
变量:

private static final String DATABASE_CREATE =
    "create table if not exists profiles (_id integer primary key autoincrement, "
    + "firstname VARCHAR not null, age VARCHAR not null, " 
    + "heightft VARCHAR not null, heightin VARCHAR not null, weight VARCHAR not null, duration VARCHAR not null, bmi VARCHAR not null);";

private static final String DATABASE_CREATE2 =
        "create table if not exists routines (_id integer primary key autoincrement, "
        + "weightclass VARCHAR not null, musclegroup VARCHAR not null, " 
        + "exercise VARCHAR not null, numberofsets VARCHAR not null, numeberofrepitition VARCHAR not null, day VARCHAR not null);";
你知道问题出在哪里吗?谢谢

更新:

private static final String DATABASE_NAME = "fgtDB";
private static final String DATABASE_TABLE = "profiles";
private static final String DATABASE_TABLE2 = "routines";
private static final int DATABASE_VERSION = 2;

private static class DatabaseHelper extends SQLiteOpenHelper 
{
    DatabaseHelper(Context context) 
    {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db) 
    {
        try
        {
            db.execSQL(DATABASE_CREATE);
                    db.execSQL(DATABASE_CREATE2);
        }
        catch(SQLException e)
        {
            e.printStackTrace();
        }
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) 
    {
        Log.w(TAG, "Upgrading database from version " + oldVersion 
                + " to "
                + newVersion + ", which will destroy all old data");
        db.execSQL("DROP TABLE IF EXISTS profiles");
        onCreate(db);
    }
}    

可能是您首先创建了一个表,然后在创建数据库时添加了另一个表。

如果是这种情况,请尝试更改数据库版本,因为如果版本相同,onCreate(SQLiteDatabase db)方法只调用一次。

这意味着每次我要为数据库创建一个新表时,我都需要更改数据库版本吗?请参阅我更新的帖子,我正在为版本设置一个静态最终变量。所以我需要把它改成一个可变的变量,然后照你说的做?提前感谢!我认为只要调用一次并不重要,因为我在onCreate中的代码应该创建两个表。我不明白为什么只创建一个表,是的。另一种方法是完全删除数据库。@ljpv14,您是否更改了版本并再次检查?我目前正在尝试此操作,在模拟器上卸载我的应用程序并安装新的应用程序副本。因为你说我已经创建了数据库并添加了一个新表。为了删除更改版本的选项,我正在卸载并重新安装它。