由於某些原因的SQLite只創建了兩個表,而不是4.我正在使用此代碼:的SQLite只創建2個表
@Override
public void onCreate(SQLiteDatabase db)
{
String TABLE_RECEIPT = "CREATE TABLE RECEIPT (receiptId INTEGER PRIMARY KEY AUTOINCREMENT, receiptDate INTEGER); ";
db.execSQL(TABLE_RECEIPT);
String TABLE_PRODUCT = "CREATE TABLE PRODUCT (productId INTEGER PRIMARY KEY AUTOINCREMENT, productName TEXT NOT NULL, productImagePath TEXT, productPrice REAL NOT NULL);";
db.execSQL(TABLE_PRODUCT);
String TABLE_RECEIPT_RULE = "CREATE TABLE RECEIPT_RULE (receiptId INTEGER NOT NULL, productId INTEGER NOT NULL, ruleAmount INTEGER NOT NULL, PRIMARY KEY (receiptId, productId), FOREIGN KEY(receiptId) REFERENCES RECEIPT(receiptId), FOREIGN KEY(productId) REFERENCES PRODUCT(productId));";
db.execSQL(TABLE_RECEIPT_RULE);
String TABLE_PRODUCT_ATTRIBUTES = "CREATE TABLE PRODUCT_ATTRIBUTES (productId INTEGER NOT NULL, attributeName TEXT NOT NULL, attributeValue TEXT NOT NULL, PRIMARY KEY (productId, attributeName), FOREIGN KEY(productId) REFERENCES PRODUCT(productId));";
db.execSQL(TABLE_PRODUCT_ATTRIBUTES);
Log.i(Config.TAG, "Recreated database");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
{
String TABLE_PRODUCT = "DROP TABLE PRODUCT;";
String TABLE_RECEIPT = "DROP TABLE RECEIPT;";
String TABLE_RECEIPT_RULE = "DROP TABLE RECEIPT_RULE;";
String TABLE_PRODUCT_ATTRIBUTES = "DROP TABLE PRODUCT_ATTRIBUTES;";
db.execSQL(TABLE_PRODUCT);
db.execSQL(TABLE_RECEIPT);
db.execSQL(TABLE_RECEIPT_RULE);
db.execSQL(TABLE_PRODUCT_ATTRIBUTES);
onCreate(db);
}
消息Recreated database
是可見的,所以也嘗試創建的所有表。它不顯示任何類型的錯誤。
我不知道這是否是有用的,但我在看現有的表下面的代碼:
//Placed in SQLiteStorage
public Cursor showAllTables(){
String mySql = " SELECT name FROM sqlite_master " + " WHERE type='table' "
+ " AND name LIKE 'PR_%' ";
return db.rawQuery(mySql, null);
}
//In Activity, create the storage and calls the function
Cursor c = new SQLiteStorage(this).showAllTables();
if (c.moveToFirst())
{
while(!c.isAfterLast())
{
Log.i(Config.TAG, c.getString(0));
c.moveToNext();
}
}
好像會有一個錯誤,如果它缺少表格。你可以試試看看它是否有可能被誤吞的錯誤? – 2014-10-20 20:37:15