0
我有一個簡單的問題,這可能有一個簡單的解決方案,但解決方案暗示我... 所以我有一個簡單的表,即手機有4列,我想添加一個新的列。由於SQLite不修改表,我必須刪除並創建。sqlite插入語句壞MOJO
phone_old
_id整數主鍵自動遞增,
名文本不爲空,
值文本
電話
_id整數主鍵自動遞增,
名文本不null,
ite mState文字不爲空,
值文本
,所以我做到以下幾點: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. ;
什麼happends其結果是,該項目的狀態(同步)加入作爲最後的字段而不是在其是ITEMSTATE柱3。
所以列名不對應行值,這意味着ITEMSTATE在末尾添加(如該行的最後一欄並沒有像第3位,因爲它是應該)
只把ITEMSTATE在最後會解決問題,但自從我的表創建語句生成後,我將不得不重寫一堆代碼才能做到這一點,並且爲了讓我生氣,這組查詢返回垃圾..
有什麼想法?