我想在Android Sqlite数据库中使用同一数据库中的其他列值初始化一个列值。 然而,我使用此功能来执行此操作:
public void InitializeColumnValues(){
String sql = "UPDATE \""+ DATABASE_TABLE + "\" SET \"" + Column2 +"\" = \"" + Column1 + "\"";
db.rawQuery(sql, null);
}
但是,不幸的是它不适合我!它的结构有问题吗? 或可能在Android Sqlite数据库中我需要根据id值逐个初始化列中的每个值!
有没有办法以尽可能少的时间做到这一点?
任何帮助将不胜感激,
谢谢......
答案 0 :(得分:4)
您的问题可以通过使用“db.execSQL(sql)”而不是使用“db.rawQuery(sql,null)”来解决,并且在编写所需查询时也不需要使用引号“”“。 ,完整且经过测试的功能如下:
public void InitializeColumnValues() {
String sql = "UPDATE "+ DATABASE_TABLE + " SET " + Column2 +" = " + Column1;
db.execSQL(sql);
db.close();
}
请注意, execSQL 和 rawQuery API之间的主要区别是:
public void execSQL (String sql)
执行一个非SELECT的SQL语句或任何其他返回数据的SQL语句。
public Cursor rawQuery (String sql, String[] selectionArgs)
运行提供的SQL并在结果集上返回Cursor。
我希望答案很有用并且适合你。