我有一个简单的问题,可能有一个简单的解决方案,但解决方案暗示我...... 所以我有一个简单的表,即有4列的电话,我想添加一个新列。由于SQLite不修改表,我必须删除和创建。
phone_old
_id整数主键自动增量,
名称文字不为空,
价值文本
电话
_id整数主键自动增量,
名称文字不为空,
itemState文本不为null,
价值文本
所以我做了以下事情: 我重命名旧桌子, 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放在最后可以解决问题,但是由于生成了我的表创建语句,我将不得不重写一大堆代码来实现这一点,并且为了这些问题,我很生气返回废话..
任何想法?
答案 0 :(得分:1)
Sqlite确实支持追加列
ALTER TABLE Phone ADD COLUMN [itemState] text not null default ''