我有一個SQLite數據庫,我想用一些初始數據填充。在SQLite.swift數據庫創建後插入初始數據
使用SQLite.swift,這種方法似乎工作:
do {
let _ = try db.run(userDictionary.create(ifNotExists: false) {t in
t.column(wordId, primaryKey: true)
t.column(word, unique: true)
t.column(frequency, defaultValue: 1)
t.column(following, defaultValue: "")
})
} catch _ {
print("table already exists")
return
}
// Add some initial data for a new database
print("adding new data")
myMethodToInsertInitialData()
這種工作方式,雖然是我使用ifNotExists: false
初始創建數據庫後每次拋出一個錯誤。 (將其設置爲true
不會引發錯誤(或允許提前返回)。)但是,除了第一次以外,每次都拋出一個錯誤看起來很糟糕。我並不是真的認爲它是一個錯誤。我只想在新創建的數據庫中插入一些數據。有沒有更好的方法來做到這一點,或者這是每個人都做的?
你可以在'NSUserDefaults'或屬性列表'plist'設置一個布爾值來檢查它是否在運行應用程序中的數據第一次。 – TPlet
@TPlet,我認爲這是一個有效的選項。然而,我偏離它的原因是我可以想象刪除數據庫表並在第一次運行後的某段時間重新創建它。通過上述方法,我在數據庫表創建時(並且僅在此時)添加初始數據。 – Suragch
噢,好吧。我沒有使用SQLite.swift,所以我在這裏有一個問題:在文檔中說它可以用例如'讓用戶=表('用戶')'。如果這個表不存在會發生什麼?它只是零,還是會崩潰? ' – TPlet