我有一个简单的问题,可能有一个简单的解决方案,但解决方案暗示了我......所以我有一个简单的表格,即有 4 列的电话,我想添加一个新列。由于 SQLite 不修改表,我必须删除并创建。
旧电话
_id 整数主键自增,
名称文本不为空,
值文本
电话
_id 整数主键自增,
名称文本不为空,
itemState 文本不为空,
值文本
所以我执行以下操作: 1. 我重命名旧表,2. 我使用额外字段(在我的情况下是 itemState)创建新表,以及 3. 我选择并插入为 itemstate 定义默认值的所有内容。
1 ALTER TABLE Phone RENAME TO Phone_OLD;
2 CREATE table Phone(
_id integer primary key autoincrement,
name text not null,
itemState text not null,
value text );
3) INSERT INTO Phone SELECT * , 'Synced' as itemState from Phone_OLD where Phone_OLD. ;
结果是项目状态(同步)被添加为最后一个字段,而不是在第 3 列中,即 itemState。
所以列名与行值不对应,这意味着 itemstate 添加在末尾(作为行中的最后一列,而不是应该的位置 3)
只需将 itemstate 放在最后就可以解决问题,但是由于生成了我的表创建语句,因此我必须重写一大堆代码才能这样做,而且老实说,这组查询返回废话让我很生气。 .
有任何想法吗?