我正在向现有表添加一个新列,并向表中添加一个新条目,其中有效数据仅存在于新列中(默认情况下其他列为0)
添加栏目:
final String DB_ADD_COLUMN_STATEMENT_TABLE_SHOP_NAME =
"ALTER TABLE "+ shopName + " ADD COLUMN "+ "D" + time + " FLOAT";
try {
mDB.beginTransaction();
//SQLiteStatement statement = mDB.compileStatement(DB_ADD_COLUMN_STATEMENT_TABLE_SHOP_NAME);
//statement.execute();
mDB.execSQL(DB_ADD_COLUMN_STATEMENT_TABLE_SHOP_NAME);
mDB.setTransactionSuccessful();
}
catch (Exception e) {
Log.d(LOG_TAG,"addItemSample : Exception while adding column to table!!");
}
finally {
mDB.endTransaction();
}
仅在此列中使用数据向表中添加新条目成功。
但是当我查询表时,这个新列不会显示在游标中。
虽然添加列和查询发生在不同的线程中,但是它们是从我的代码中调用它们的方式序列化的(即添加了第一列然后查询了db)以及我正在使用单个连接到db 。
我想知道这可能是什么原因?
PS:插入列后立即执行db查询时,会显示。
答案 0 :(得分:0)
取决于您的查询语句。 就像
String query="select id, column1, column 2 from "+shopName+" where yourcondition";
? 可能你要添加列?
String query="select id, column1, column2, D192200 from "+shopName+"";
或者您可以查询所有列
String query="select * from "+shopName+"";
答案 1 :(得分:0)
问题可能是您要添加一个期望NOT NULL
值
尝试这样的事情:
ALTER TABLE "+ shopName + " ADD COLUMN "+ "D" + time + " FLOAT" default 0 NOT NULL;
使用您需要的默认值并根据需要更新值。