1
A
回答
0
我想從列c1中獲取所有數據,將列重命名爲c2並將所有數據寫回。
Sqlite不支持重命名列,所以這不會在Android下工作。你當然可以添加一個額外的列。在Android/ORMLite下有一些關於模式更改的很好的文檔。看到這個頁面:
例如,你可以做以下架構更新:
dao.executeRaw(
"ALTER TABLE `account` ADD COLUMN hasDog BOOLEAN DEFAULT 0;");
dao.updateRaw("UPDATE `account` SET hasDog = 1 WHERE dogCount > 0;");
2
下面是來自ORMLite documentation報價:「你不能重命名或刪除一列或更改約束條件「。
那麼你的選擇是:
- 假的東西,因爲他們,
- 添加新列,從舊到新複製所有數據作爲升級的一部分,而忽略舊列共,或者
- 使用刪除/創建策略進行升級:將表中的數據備份到臨時表中,刪除表,根據需要重新創建表,將所有數據複製回來,最後放下臨時表。
數據庫的升級總是緊張的事務(需要大量的錯誤處理,大量的測試),坦率地說,如果名稱是唯一你關注,我會離開它單獨(選項1)。如果你真的需要改變它,那麼選項2的風險很低,但會留下一個「死亡」列和數據。例如,如果數據是整個數據庫大小的重要百分比,則可以選擇選項3。
相關問題
- 1. OrmLite 4.0.34升級錯誤
- 2. 保持索引數據庫升級時存在ObjectStore數據
- 3. 升級時保存註冊表設置
- 4. 如何在數據庫升級過程中保留和升級SQLITE數據庫
- 5. WIX:在主要升級期間保存用戶數據文件
- 6. Moodle在升級數據庫時清除緩存,不會讓數據庫升級
- 7. 與升級ORMLite模式相混淆
- 8. Android Ormlite升級問題與ForeignCollectionField
- 9. 升級數據庫保持舊版本
- 10. 果園:保存Vandelay.Meta(1.0)中的數據升級到Vandelay Industries(1.8)
- 11. iPhone保存升級時被刪除的數據?
- 12. flask-migrate:無法升級數據庫becase「表不存在」
- 13. 保存數據表格之前提交
- 14. 從數據庫保留表,同時升級Android
- 15. 在不保存的情況下升級Infopath表單
- 16. 使用ant升級項目數據庫升級數據庫
- 17. hasMany保存不工作Grails 2.4.2升級
- 18. OrmLite更新()與保存()
- 19. 在表中按升序存儲數據
- 20. sqlite升級數據庫與表中的額外字段和保留舊數據
- 21. 如何在APK升級之前上傳sqlite數據庫?
- 22. 在不丟失當前數據的情況下升級Cassandra
- 23. Firebase:在登出前保存數據
- 24. EditTextPreference在保存之前驗證數據
- 25. factorygirl在測試前保存數據
- 26. 在升級應用程序後,CoreData是否會保留數據?
- 27. Wix刻錄升級需要在升級前卸載兩個MSI's
- 28. Android:升級數據庫
- 29. SQLite數據庫升級
- 30. 數據庫升級方法
我不太明白你想要做什麼。您可能想編輯您的帖子以提供更多細節。 – Gray
我認識到我在模型更新後會丟失一些數據。所以我想寫一些像補丁一樣的東西,在它的模式升級之前從表中加載一些數據。架構升級後,我將先前加載的數據寫回到表或另一個。 – Happo