我正在嘗試執行數據庫遷移,其中我刪除了一個表,並在我的Android應用程序的其中一列中添加了唯一限制。如何替換SQLite中的表
我創建了新表,將原始值中的值複製到新表中,刪除了舊錶,然後將新表重命名爲與舊錶相同的名稱。
問題是,現在當我查詢數據庫中原始表名稱的值時,我從所謂的刪除表中獲取結果,而不是重新命名的新表。
我試過除了重命名新表,以驗證一切正確連接。我看到有正確列的新表。但是查詢舊錶格會給我有效的回答,而不是「表格不存在」的錯誤。
這是發生在一個測試中,我正在建立數據庫,調用onUpgrade,然後查詢狀態。
爲了重申:
- 創建,2列1表A,3
- 創建,4列1 2,表B,5
- 從表A中複製行表B,滴加柱3並具有用於4列和表A
- 獲取條目瓦特 默認值5.
- DROP TABLE甲
- 重命名錶B中第i個查詢表格中的
備用時列1,2,3:
- 跳過步驟5
- 還能查詢表A和B表
我是否需要進行某種類型的刷新以使丟棄的表實際丟棄?
/* Create table_a */
/* Populate table_a */
/* Create table_b */
/* Copy table_a contents to table_b */
db.execSQL("DROP TABLE IF EXISTS table_a");
db.execSQL("ALTER TABLE table_b RENAME TO table_a");
謝謝。
有趣的額外注:以上面提到的備選路線,列出所有的表將不顯示錶-A – Curtor
@BobMalooga請註明如何做到這一點的SQLite的[ALTER TABLE](HTTP://www.sqlite。組織/ lang_altertable.html)。 –
顯示您的代碼。 –