我正在尝试编写一个包含数据库的Android应用程序,该数据库将根据用户输入动态更改其架构。
例如,假设您最初有一个表,其中唯一的列是不同品种的小狗的列。这将是主要关键。然后,用户可以动态添加与此表中的新列对应的新属性(例如颜色,有斑点,大小等)。
我想知道是否必须在onUpgrade中执行ALTER TABLE查询,或者我是否可以在SQLiteOpenHelper子类中的另一个方法中执行它。我不知道每次用户想要添加新属性时是否真的需要增加数据库版本。谢谢!
答案 0 :(得分:0)
我想知道是否必须在onUpgrade中执行ALTER TABLE查询,或者我是否可以在SQLiteOpenHelper子类中的另一个方法中执行它。
欢迎您随时随地执行ALTER TABLE
语句(与所有数据库I / O一样)。
在您的情况下,我不知道您使用SQLiteOpenHelper
的原因。 SQLiteOpenHelper
背后的要点是帮助开发人员构建具有固定(每个版本)模式的应用程序。这不是您正在采取的路线,在这种情况下SQLiteOpenHelper
可能没有多大帮助。
答案 1 :(得分:0)
onUpgrade。当我发布新版本的应用程序时,我已经使用此函数来执行我对数据库模式所做的更改。但是如果要动态添加列,是的,可以使用ALTER TABLE命令。