2012-01-29 94 views
1

我正在使用教程here提供帶有SimpleCursorAdapter的AutoCompleteTextView。它的工作原理一樣,但我已經將數據庫更改爲使用fts3,因爲我聽說它更快(因此,名稱)。SQLite重命名fts3 rowid列

好像什麼東西在代碼是硬連線使用的列_id因爲改變一個FTS3表後,我得到這個錯誤:

01-28 21:31:53.018: E/AndroidRuntime(16284): java.lang.IllegalArgumentException: column '_id' does not exist 
01-28 21:31:53.018: E/AndroidRuntime(16284): at android.database.AbstractCursor.getColumnIndexOrThrow(AbstractCursor.java:314) 

雖然我還沒有宣佈自動增量鍵的任何地方(因爲它在fts3中被rowid取代)。該錯誤發生在AbstractCursor,所以我可以做的事情不多。

我想可能有辦法迫使碼識別rowid_id使用SELECT rowid,* FROM mytable然後以某種方式改變了列名..我很新爲sql所以任何幫助表示讚賞!

+0

我有完全相同的問題 – 2015-04-22 17:03:47

回答

1

在SQLite中重命名列可以按照here所述完成。請注意,在交易中完成所有這些操作是非常明智的。在Android中執行此操作時的一個細節 - 我不知道如何在解決方案中執行SQL腳本,但如果使用execSQL調用,請記住this

順便說一句,如果你不想重命名列,你可以嘗試建議的技術here

+0

你的第二個建議(使用'as')沒有問題。謝謝! – Snailer 2012-01-29 22:04:46