Android SQLite更新列数据类型

时间:2017-01-03 15:20:37

标签: android database sqlite android-sqlite

如何将一列的数据类型更改为另一列?

我想在数据库升级时将一个列的数据类型从Number更改为现有表的Text。

1 个答案:

答案 0 :(得分:1)

据我所知你无法改变它,因为在SQLite中存在一些限制,因此很容易使用alter table或类似的东西:

完成ALTER TABLE支持

仅支持ALTER TABLE命令的RENAME TABLE和ADD COLUMN变体。其他类型的ALTER TABLE操作(如DROP COLUMN,ALTER COLUMN,ADD CONSTRAINT等)将被省略。

Omitted information in SQLite

但是,根据我之前需要重新创建表格的经验,我有一些建议:

  1. 要创建当前信息的BackUp(将信息存储在XML或Cursor中,它只是暂时的)。有关游标的更多信息:Accessing Data With Android Cursors
  2. 删除要更改的表。

    db.execSQL(" DROP TABLE IF EXISTS YourTableName");

  3. 使用新结构再次重新创建表格。

    db.execSQL(" CREATE TABLE YourTableName");

  4. 使用循环再次插入旧信息。

  5. 观看请记住,您需要投射以前是 Number 的列,现在是 Text