您的位置:首页 > 移动开发 > Android开发

Android本地数据库升级

2015-09-17 13:09 453 查看
Android数据库升级并不仅仅是
Alert Table TableName Add ColumnName

就可以的,这样做会造成很多诸如列名冲突的问题。

而是要分多步走:

1.开启事物

db.beginTransaction();
2.旧表改名

db.execSQL( "ALTER TABLE " + SystemNoticeTable.TABLE_NAME + " RENAME TO __temp__" + SystemNoticeTable.TABLE_NAME );


3.创建新表
db.execSQL(SystemNoticeTable. getInstance().toCreateQuery());


4.复制数据

db.execSQL( "INSERT INTO "+SystemNoticeTable.TABLE_NAME+" SELECT *, '' FROM __temp__"+SystemNoticeTable.TABLE_NAME);


5.删除旧表
db.execSQL( "DROP TABLE __temp__"+SystemNoticeTable.TABLE_NAME);


6.关闭事物
db.setTransactionSuccessful();
db.endTransaction();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: