未创建附加表

时间:2012-03-11 02:12:13

标签: android sqlite oncreate onupdate

我正在尝试在我的应用程序中添加第二个表,但我没有运气。这两个表是他们自己的类,是单身人士。我在onUpgrade方法中传入数据库的引用,并再次作为实例变量传递。

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    transTable = TransactionTable.getInstance(db);
    sysTable = SystemTable.getInstance(db);

    onCreate( db );

    transTable.updateTable();
    sysTable.updateTable();
}

onCreate方法只调用所有表中的create方法。

@Override
public void onCreate(SQLiteDatabase db) {
    transTable.createTable();
    sysTable.createTable();
}

第二个表sysTable在执行以下create语句时不会抛出异常。

public void createTable() {
    db.rawQuery("CREATE TABLE IF NOT EXISTS " + tableName + " ("
            + "_id INTEGER PRIMARY KEY AUTOINCREMENT, " + lastUsed
            + " INTEGER, " + balance + " INTEGER, " + accountName
            + " TEXT, UNIQUE ( " + accountName + " ) )", null);
}

但是,当我运行一个简单的查询,如下所示:

 db.rawQuery("select * from " + tableName, null);

我收到错误说明

 android.database.sqlite.SQLiteException: no such table: system_t: , 
 while compiling: select * from system_t

第一个表被删除或创建没有问题。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

更改createTable方法的代码:

 db.rawQuery

db.execSQL()