我想在现有的数据库中添加一个额外的表,而不会丢失数据。 因此,丢弃表格并将它们创建为新的选项是没有选择的。 这样做的最好方法是什么?在现有的SQLITE中创建额外的表(无数据丢失)
6
A
回答
3
我这样做的方式是创建一个单独的数据库,将当前的所有内容复制到临时新数据库中,然后删除旧数据库,然后将其从临时数据库中复制回来。
不知道是否有另一种方式来做到这一点,但如果有我喜欢听到它
0
创建扩展SQLiteOpenHelper类,覆盖的OnOpen(SQLiteDatabase DB),创建表创建一个字符串查询,然后使用db.execSQL(String str);
4
它似乎更容易。我使用SQLiteOpenHelper。所以如果数据库已经存在,那么onCreate()就不会被调用。当版本号增加时,调用onUpdate()。在onUpdate()我添加了我的新表“如果不存在,创建表”。从SQLITE.ORG的文档:但是,如果“IF NOT EXISTS”子句被指定为CREATE TABLE语句的一部分,并且已存在同名表或视图,则CREATE TABLE命令根本无效错误消息被返回)。现在桌子已经创建好了。
0
如果你想在现有的数据库中添加新表,那么你应该做这个里面onUpgrade()方法,如: -
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
if (oldVersion == xyz) {
db.execSQL(QUERY_CREATE_TABLE_..........NEW);
}
}
这里XYZ是要旧版本的数据库添加新表格。
记住增加DATABASE_VERSION
当我们增加数据库版本,那么onUpgrade()方法调用,以及使用条件添加表。
,也可以创建里面的onCreate)与现有的表新表(,对于全新安装,如: -
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(QUERY_CREATE_TABLE_..........OLD);
db.execSQL(QUERY_CREATE_TABLE_..........OLD);
db.execSQL(QUERY_CREATE_TABLE_..........NEW);
}
相关问题
- 1. 在现有的数据库sqlite糖orm中创建表
- 2. 从sqlite中的现有表创建数据库
- 3. 从sqlite数据库中丢失数据
- 4. EF创建额外的表
- 5. 表sqlite中的数据库丢失的表
- 6. Firebase在创建帐户时创建额外的用户数据
- 7. 无法在android上的sqlite数据库中创建表格
- 8. 表未在SQLite数据库中创建
- 9. 在数据库sqlite中创建新表
- 10. 额外的数据正在插入我的sqlite数据库
- 11. 从SQLite中的现有数据库创建脚本3
- 12. Xcode的SQLite数据库创建无Z_METADATA
- 13. 在我的SQLite数据库中出现意外的表格
- 14. 图表 - 有额外的数据
- 15. 在SQLite数据库中创建Oracle数据库表的副本
- 16. 丢失的数据库表
- 17. VB.NET在GridView中创建额外的列
- 18. iOS 5 - Coredata Sqlite数据库在丢失应用程序后丢失数据
- 19. 并非所有的表得到的SQLite数据库中创建
- 20. 无法使用Phonegap在SQLite数据库中创建表格
- 21. 雄辩:检查数据透视表(主键+额外列)中的现有数据
- 22. SQLite数据库的Android创建表
- 23. 在数据库中添加预填表,而不会丢失现有数据
- 24. 在创建sqlite数据库的方法中出现错误
- 25. 无法在sqlite中使用外键创建表
- 26. 无法收集由JavaScript创建的额外文本框中的数据
- 27. 创建数据库表,但无法找到Android的SQLite的
- 28. 创建额外的标签
- 29. 为什么我的Sqlite3数据库在android丢失/丢失表
- 30. 在不检查现有数据的情况下创建外键
似乎要容易得多。 我使用SQLiteOpenHelper。 因此,如果数据库已经存在,onCreate()永远不会被调用。 当版本号增加时,调用onUpdate()。 在onUpdate()我添加了我的新表“如果不存在,创建表”。 从SQLITE.ORG文档中可以看出:但是,如果将“IF NOT EXISTS”子句指定为CREATE TABLE语句的一部分,并且已存在同名表或视图,则CREATE TABLE命令根本不起作用没有错误消息返回)。 现在表已创建并罚款。 – venni 2012-07-05 20:58:06