我将表Invoice设置为:

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


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

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

最佳答案

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


添加新列(UserIdTemp
将现有数据从UserId复制到UserIdTemp(将数据转换为所需格式)
删除旧列(UserId
使用新的数据类型创建一个新列(UserId
将数据从UserIdTemp复制到UserId
放下UserIdTemp

10-07 19:23
查看更多