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
創作者介紹
創作者 shadow 的頭像
shadow

資訊園

shadow 發表在 痞客邦 留言(0) 人氣()