我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