使用Room Persistence Storage在Sqlite中更改列的数据类型

时间:2018-05-08 07:58:03

标签: android sqlite android-sqlite android-room

我的表Invoice为:

TABLE Invoice (UserId INTEGER NOT NULL, InvoiceNumber TEXT NOT NULL, Amount REAL NOT NULL, ...)

我想将UserId列的数据类型更改为TEXT,而不会丢失表格中已存在的任何数据。

如何使用Room而不删除并重新创建表?

1 个答案:

答案 0 :(得分:0)

您无法直接更改列的数据类型(UserId)。您可以按照以下步骤解决问题!

  1. 添加新列(UserIdTemp
  2. 将现有数据从UserId复制到UserIdTemp(将数据转换为所需格式)
  3. 删除旧列(UserId
  4. 使用新数据类型
  5. 创建新列(UserId
  6. 将数据从UserIdTemp复制到UserId
  7. 删除UserIdTemp