我将表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