是否可以更改 sqlite db 表中的现有列
Posted
技术标签:
【中文标题】是否可以更改 sqlite db 表中的现有列【英文标题】:Is it possible to make changes in the existing column in a table for sqlite db 【发布时间】:2018-01-29 02:47:00 【问题描述】:我创建了一个应用程序,它在 Play 商店中运行,它有 3 个表,我想为一个表添加另外两列并从另一个表中删除一列。如果我这样做并将其更新到 playstore 会不会对现有用户数据库造成任何影响,或者他们想要卸载应用程序以获取这些新更改? 如果有什么好的方法可以用来更新表格而不影响用户的数据。
【问题讨论】:
【参考方案1】:你应该使用 onUpgrade
当数据库需要升级时调用。实施 应该使用此方法删除表、添加表或执行其他任何操作 它需要升级到新的架构版本。
示例
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
if (oldVersion < 3)
db.execSQL("ALTER TABLE " + TABLE_NAME + " ADD COLUMN mobile_no INTEGER;");
db.execSQL("ALTER TABLE " + TABLE_NAME + " ADD COLUMN phone_no INTEGER;");
【讨论】:
@Nidhun Kumar 我建议阅读 SQL As Understood By SQLite - ALTER TABLE 关于限制的内容。以上是关于是否可以更改 sqlite db 表中的现有列的主要内容,如果未能解决你的问题,请参考以下文章
根据表中另一个现有列的内容更改 SQL Server 中的现有列
如何通过更改SQLite3中的现有SQL表通过单个SQL语句添加更多列?
更改现有列,使其从 MYSQL 数据库中的另一个表中提取数据