SQLite3:如何修改fileds’type而不丢失数据

在我的项目中,我使用sqlite数据库,不幸的是我的朋友发了错误.字段没有正确的类型.

因此,当字段“localid”(声明为整数)中的数据大于2147483647时,此字段中的所有条目都将设置为最大值2147483647.

alter table / alter column sql请求不适用于sqlite,因为它支持ALTER TABLE的有限子集:只重命名并添加新列.

那么如何在没有数据丢失的情况下进行更改?正确创建一个新数据库,将所有数据写入其中并删除旧数据库?

但也许有更好的方法?有人有想法吗?

最佳答案 继续这样:

>创建包含构成主要字段的临时表
key和localid(我认为这不是PK).
>填写临时表
>放弃旧栏目
>添加新列
>通过从临时表中选择来填充新列(可能转换为新类型).

如果使用了列,请不要忘记可能的外键,并且如果它使转换平滑(在您的情况下可能不需要),请记住暂时放松约束的可能性.

点赞