android - 在android中执行sql

标签 android sqlite

我正在尝试在 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) 方法只会调用一次。

关于android - 在android中执行sql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13831880/

相关文章:

android - 您可以在运行时注册 url Intent 吗?

Android - 使用上下文的最佳方式

sqlite - 如何规划 SQLite 数据库中的架构更改?

java - 使用内容值在 sqlite 中插入多行

sql - Android 应用程序测试和调试问题

android - Android Application.getInstance 是否一直存在?

android - 无法在应用程序中使用 png 资源覆盖库的 xml 资源?

database - 不同版本的sqlite3会生成大小不同的文件

iphone - SQLite MYSQL 字符编码

android - 更改蓝牙可发现性时未发送广播