3

sqlite android 開発でテーブルを作成しようとしています。私の問題は、作成されているテーブルは 1 つだけですが、もう 1 つのテーブルは作成されていないことです。

これが私がそれらを作成する方法です。

    @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);
    }
}    
4

1 に答える 1

1

最初に 1 つのテーブルを作成し、データベースの作成時に別のテーブルを追加した可能性があります。
その場合は、バージョンが同じであれば onCreate(SQLiteDatabase db) メソッドが 1 回しか呼び出されないため、データベースのバージョンを変更してみてください。

于 2012-12-12T02:39:21.137 に答える