答案 0 :(得分:1)
你不能,SQLite's ALTER TABLE非常有限:
因此您可以使用ALTER TABLE重命名表,也可以添加一个新列。在好的方面(至少对你而言),SQLite的“类型”概念非常宽松,更多地取决于你如何使用某些东西而不是你如何定义列;例如:
sqlite> create table t (i int);
sqlite> insert into t (i) values (11);
sqlite> insert into t (i) values ('pancakes');
sqlite> select * from t;
i
11
pancakes
因此您可以将任何类型的数据放入任何其他类型的列中。
但是,如果您使用的工具检查表的架构以确定如何将表的数据转换为本机类型,那么您将需要模拟ALTER TABLE ALTER COLUMN。 AFAIK,唯一的方法就是丑陋的方式:
我会用丑陋的方式去做,忽略SQLite的松散类型系统;如果我在一个被声明为整数的列中找到'pancakes'
,我会有点困惑并且对负责人有一些严厉的话语。
答案 1 :(得分:0)
正如本页所述
http://www.sqlite.org/lang_altertable.html
Sqlite不支持ALTER TABLE ALTER COLUMN
语法。
在我看来,您必须将列的值存储在其他位置,添加新列,将存储的值重写到新列中,然后删除旧列。