[Android] [SQLite] No Such Table

  • 0
Tips: 在 database 已存在的情況下要新增 Table 時,記得更改 DATABASE_VERSION,確保 onUpgrade() 帶動執行 onCreate() 裡的 create table 指令
(或者是用 adb shell 把整個 database 刪掉也可以)
--
今天在開發的時候,新增加了一個 database table
但是卻在 LogCat 中看到錯誤訊息
"No Such Table xxx"

就是 create table 的 sql 沒有被執行 (放在 onCreate() 裡)
一開始以為是
sqliteopenhelper oncreate is not called
找到了 Android SQLiteOpenHelper : onCreate() method is not called. Why?
發現 onCreate 是經由 getWritableDatabase(); 啟動的
後來改查
getwritabledatabase not calling oncreate
在 onCreate() is not called by getWritableDatabase() 提到
 onCreate 只在 database 完全沒有的情況下才會呼叫

最後,我改了 DATABASE_VERSION
這樣就會呼叫 onUpgrade(),在 onUpgrade() 裡再呼叫 onCreate

沒有留言 :

張貼留言