我正在向现有表中添加一个新列,并向该表中添加一个新条目,其中有效数据仅存在于新列中(默认情况下,其他列为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 ),而且I使用一个到db的连接。
我想知道这可能是什么原因?
PS:当在插入列之后立即执行db查询时,它会显示出来。
发布于 2017-05-30 00:23:42
取决于您的查询语句。是不是像这样
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+"";发布于 2017-05-30 03:04:18
问题可能是您正在添加一个需要NOT NULL值的列
尝试如下所示:
ALTER TABLE "+ shopName + " ADD COLUMN "+ "D" + time + " FLOAT" default 0 NOT NULL;使用您需要的任何默认值,并根据需要更新值。
https://stackoverflow.com/questions/44246759
复制相似问题