Android 添加到表中的新列不会显示在查询中
我正在向现有表中添加一个新列,并向该表中添加一个新条目,其中有效数据仅存在于新列中(其他列默认为0) 添加列:Android 添加到表中的新列不会显示在查询中,android,android-sqlite,android-database,Android,Android Sqlite,Android Database,我正在向现有表中添加一个新列,并向该表中添加一个新条目,其中有效数据仅存在于新列中(其他列默认为0) 添加列: final String DB_ADD_COLUMN_STATEMENT_TABLE_SHOP_NAME = "ALTER TABLE "+ shopName + " ADD COLUMN "+ "D" + time + " FLOAT"; try { mDB.beginTransaction();
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查询时,它会显示。取决于您的查询语句。 是这样的吗
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+"";
问题可能是您正在添加一列,该列要求
不为NULL
值
试着这样做:
ALTER TABLE "+ shopName + " ADD COLUMN "+ "D" + time + " FLOAT" default 0 NOT NULL;
使用您需要的默认值,并根据需要更新值。我只是查询表中的所有条目。在查询之前,您是否在该列中保存了任何值?是的,它已保存,如果我转储数据库,我可以看到该值。db\u ADD\u column\u STATEMENT\u table\u SHOP\u NAME中的“+”D“+”呢?这是故意的还是错误的?这是故意的,我只是在time前面加上前缀D,因为sqlite不接受以数字开头的列名