程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> sqlite3-請教Android SQLite大神,我重復調用CREATE TABLE會將舊表覆蓋嗎?

sqlite3-請教Android SQLite大神,我重復調用CREATE TABLE會將舊表覆蓋嗎?

編輯:編程綜合問答
請教Android SQLite大神,我重復調用CREATE TABLE會將舊表覆蓋嗎?

我實現了一個DBHelper對象,在OnCreate()初始化的時候會這樣處理。
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table download_info(_id integer PRIMARY KEY AUTOINCREMENT, thread_id integer)");
}

也就說每次創建DBHelper對象都會去執行CREATE TABLE。經我測試,這樣不會重復創建表,或者創建新表將舊表覆蓋。

但是我記得以前在書上看過創建表之前好像要‘IF NOT EXISTS’的判斷才行。

我對這個就不是很了解了,網上也沒有相關資料。有沒有大大出來給我解釋一下?我已經知道答案是不會覆蓋舊表了,但是原理是什麼有人知道嗎???

最佳回答:


數據庫是根據版本號更新的,而表是沒有對應的版本號的,所以表是對應數據庫的更新而更新的。
通過代碼發現只有onUpgrade()時候即newVersion > oldVersion才更新,而onCreate()調用的是
SQLiteDatabase的openOrCreateDatabase()的方法的

h3c4lenovo
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved