0
我工作的一個Android應用程序,和我有一個類擴展SQLiteOpenHelper
不與其onCreate
聲明拋出一個錯誤,即使是在SQL沒有IF NOT EXISTS
:爲什麼不創建表爲先存表引發錯誤?
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE foo (columnName Text)");
}
我可以實例化這個類儘可能多地添加數據,添加數據,操作數據,關閉數據,然後在下次打開我的應用程序時再回到數據庫。它從來沒有拋出一個合適的:
MyClass MyClass0 = new MyClass(this);
SQLiteDatabase MyDatabase = MyClass0.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("columnName","value0");
long newRowId = MyDatabase.insert("foo", null, values);
Cursor cursor = MyDatabase.rawQuery("SELECT * FROM foo WHERE columnName = \"value0\"", null);
cursor.moveToPosition(0);
int rowcount = cursor.getCount();
Log.d("Database Testing",Integer.toString(rowcount));
MyDatabase.close();
我知道他們說不要把禮物馬在嘴裏,但我不明白爲什麼這個工程。
這是因爲如果數據庫已經存在,則不會調用onCreate(),請參閱[post](https://stackoverflow.com/a/21881993/5015207) – 0X0nosugar