我正在我的 android 应用程序中开发一个 sqlite 数据库。我需要它可以轻松增长,所以我需要在未来的升级中,我可以更改数据库等。
我想知道当我在sqlite创建方法中更改数据库版本时,它是否会创建一个数据库的新文件。如果是,那么在 onUpgrade 中我应该迁移所有数据,不是吗?
总之,onCreate 到底做了什么?它会创建数据库的新文件吗?还是它修改了实际的?
我问这个是因为我不希望 onCreate 创建一个新文件......我只想改变实际的数据库。
谢谢
只有在第一次需要创建数据库时才会调用 OnCreate。
如果数据库已经存在并且版本号不匹配,则调用 OnUpgrade。您应该使用 OnUpgrade 将数据库从旧版本更改为新版本。
我假设您指的是 SQLiteOpenHelper 中的 OnCreate 方法。当您请求可写或可读数据库并且需要创建数据库时,它会被调用。我们不直接调用 oncreate 方法。因此,如果一个数据库已经存在并且我们请求一个可写或可读的数据库——不会创建新的数据库。
有关更多信息,请参阅这些链接
http://developer.android.com/reference/android/database/sqlite/SQLiteOpenHelper.html
http://developer.android.com/resources/tutorials/notepad/index.html