假设要更新TableC表,建议的做法是:

1)将TableC重命名为TableC_temp

SQL语句可以这样写:ALERT TABLE TableC RENAME TO TableC_temp;

2)创建新的TableC表

3)将数据从TableC_temp中插入到TableC表中

SQL语句可以这样写:INSERT INTO TableC (Col1, Col2, Col3) SELECT (Col1, Col2, Col3) FROM TableC_temp;


经过这三步,TableC就完成了更新,同时,也保留了原来表中的数据。

注意:

在onUpgrade()方法中,删除表时,注意使用事务处理,使得修改能立即反应到数据库文件中。

protected void upgradeTables(SQLiteDatabase db, String tableName, String columns)  {      try      {          db.beginTransaction();            // 1, Rename table.          String tempTableName = tableName + "_temp";          String sql = "ALTER TABLE " + tableName +" RENAME TO " + tempTableName;          execSQL(db, sql, null);            // 2, Create table.          onCreateTable(db);            // 3, Load data          sql =   "INSERT INTO " + tableName +                  " (" + columns + ") " +                  " SELECT " + columns + " FROM " + tempTableName;            execSQL(db, sql, null);            // 4, Drop the temporary table.          execSQL(db, "DROP TABLE IF EXISTS " + tempTableName, null);            db.setTransactionSuccessful();      }      catch (SQLException e)      {          e.printStackTrace();      }      catch (Exception e)      {          e.printStackTrace();      }      finally      {          db.endTransaction();      }  }  

更多相关文章

  1. 一句话锁定MySQL数据占用元凶
  2. android将InputStream转为FileOutputStream保存HttpURLConnectio
  3. Android(安卓)error--No implementation found for native Lcomd
  4. pAdTy_-5 保存数据
  5. Android(安卓)TTS 初体验
  6. Android(安卓)平台点对点音视频对讲
  7. android立体图形——三棱锥
  8. android sqlite中字符串含有单引号的处理
  9. Android中的Adapter 详解(二)

随机推荐

  1. Android开发-一个简单的五子棋游戏
  2. 【Android】MVC模式在Android系统中的应
  3. Android优缺点
  4. Android的UI构造试图工具hierarchyviewer
  5. 【源码】Android 面包屑导航效果源码、An
  6. Android AsyncTas开发
  7. 美国Android占28%份额 摩托Droid最受欢迎
  8. Android 模拟器横屏竖屏切换设置
  9. Android ContentProvider 多进程multipro
  10. android EditText inputType