0
我已經在我的SQLite數據庫中創建一個視圖,它包含兩個_id列,並通過此語句創建的其他一些信息:沒有這樣的列:_id :,但
CREATE VIEW IF NOT EXISTS journeyProfileContactsView AS SELECT JourneyProfile._id, JourneyProfile.TITLE, ContactsProfiles._id, ContactsProfiles.NAME, ContactsProfiles.NUMBER FROM ProfileToContacts INNER JOIN JourneyProfile ON ContactsProfiles._id=ProfileToContacts.contactID INNER JOIN ContactsProfiles ON JourneyProfile._id=ProfileToContacts.profileID
並已與掙扎這個錯誤了一段時間:
11-27 19:30:04.686: E/AndroidRuntime(12946): Caused by: android.database.sqlite.SQLiteException: no such column: _id: , while compiling: SELECT * FROM journeyProfileContactsView WHERE _id=1
我相信列確實存在,我已經打開了SQLite中管理視圖,可以確認該列中存在的_id(另一列是_id:1) ,儘管檢查遊標表明它實際上可能是JourneyProfile._id。
我已經試過:
"JourneyProfile._id=" + id
"_id=" + id
它真的難倒我,我不知道我要去的地方錯了。任何幫助?
您可以在視圖中對其進行重命名:CREATE VIEW .. AS SELECT JourneyProfile._id AS _id,...,ContactsProfiles._id AS contacts_id,..',其中AS是可選的。具有可以現在引用它們的優點。 – zapl
您是否更改過架構?通常,設計人員會更改包含SQL CREATE代碼的Java String,但忘記更新SQLiteDatabase模式......並且您正在使用「CREATE VIEW IF NOT EXISTS」,是否更改VIEW並忘記刪除舊的? – Sam
是的,我已經重新啓動/擦拭/清理等模擬器很多次。它是第一次創建視圖,並在同一運行中顯示錯誤。我會嘗試重命名它們。 – Demonofloom