2011-07-09 31 views
5

我問了好幾遍這個問題,但卻得到了一個COMPLETE答案......如何實現ALTER TABLE語句以向數據庫添加一列。有人可以給我一個例子嗎?如何實現ALTER TABLE的示例

+3

你看過你的問題的以前的評論和答案? –

回答

16

請閱讀SQLite ALTER TABLE reference,這Android SQLite article

database.execSQL("ALTER TABLE " + your_table_name + " ADD COLUMN " + new_col_name + " int"); 
+0

它的stil告訴我,列確實存在。 – yoshi24

+0

@Override \t \t \t公共無效的onCreate(SQLiteDatabase分貝){ \t \t \t db.execSQL(DATABASE_CREATE); \t \t \t \t \t db.execSQL(「ALTER TABLE」+ DATABASE_NAME +「ADD COLUMN」+ KEY_STATUS +「text」);這確實有用。仍然收到錯誤列狀態不存在 – yoshi24

1
ALTER TABLE db_name.mytable ADD COLUMN column_name VARCHAR(30) 

這對SQLite的。其他數據庫可能允許您指定列的放置位置,但使用SQLite將其添加到末尾。

編輯:我想到了更多。在你的問題中,你要求一個完整的答案。有人發現,在問這個問題之前,你問了5個小時基本上相同的問題。考慮到前一個線程中沒有任何響應是您正在尋找的東西(儘管其中一些提供了完整的SQL示例),但它讓我覺得完整的答案必須包含比SQL更多的東西以及一些指向Web教程的鏈接。

爲了做到徹底和完整,我建議您考慮以下書籍:Using SQLite (O'Reilly)Learning Android (O'Reilly)。事實上,後者有一章(第9章)專門介紹Android數據庫環境,意思是Android的SQLite實現。

在數據庫,編程和各種操作系統方面擁有豐富經驗的人們通常可以通過網站手冊以及諸如StackOverflow之類的網站獲得一些提示。但對於我們其他人(包括我自己)來說,當我真的想要學習一個我認爲對我很重要的話題時,我會一路沉浸在一些好書中。

我希望你或者其他可能剛剛開始使用這些主題的人發現此建議很有幫助。

+0

謝謝!那麼我在我的數據庫中實現這個? – yoshi24

+0

這取決於你。你是需要添加列的人。 :)另外,數據類型可以是任何有效的SQLite類型。不一定是VARCHAR。 INTEGER,TEXT,CHAR等。我還使用'db_name.mytable'作爲模板文本。你必須使用你自己的數據庫名稱和表名。 'column_name'相同。 – DavidO

+0

@Override \t \t \t公共無效的onCreate(SQLiteDatabase分貝){ \t \t \t分貝。execSQL(DATABASE_CREATE); \t \t \t \t \t ALTER TABLE nba.bookList ADD COLUMN KEY_STATUS text;它是否正確? – yoshi24

1

我剛剛遇到了這個問題,並且一遍又一遍地嘗試了,這裏描述的關於列的異常不存在,儘管alter table語句沒有拋出任何異常。

經過兩個小時的嘗試,建立一個文件備份存儲,以及在這裏看起來可行的任何東西,我意識到我沒有在「select query」中包含新列,但仍嘗試從遊標,因此該列不存在異常。

+0

很好的提醒,通過您的代碼一直遵循更改, –