需要一个好的方法来改变(SQLite)列数据类型

Viv*_*han 5 sqlite android

我有一个带'int'列的表.在软件升级期间,我想将其更改为"长"数据类型.似乎SQLite没有提供更改/修改列属性的选项(在alter语句中).由于我想进行升级,因此该表可能包含用户不应丢失的数据.所以请建议我一个很好的方法来更改列数据类型属性而不会丢失数据.

搜索链接中建议的一种方法是创建临时表,从现有表中复制记录,删除现有表,以及重命名临时表.我怀疑这是否有效.

感谢您的帮助!

问候

Vivek Ragunathan

Viv*_*han 13

我使用follow语句来更改列的类型.

CREATE TABLE IF NOT EXISTS **TEMP_TABLE** (id integer primary key autoincrement, **col2change integer not null**, ...)

INSERT INTO TEMP_TABLE SELECT * FROM EXISTING_TABLE

DROP TABLE EXISTING_TABLE

ALTER TABLE TEMP_TABLE RENAME TO EXISTING_TABLE
Run Code Online (Sandbox Code Playgroud)

我将现有表中的int类型列更改为整数类型.几百行,速度相当快.