2016-01-22 67 views
0

嗨,大家好我有一個關於我的sqlite數據庫的問題我試圖讓一個外鍵的數據庫。現在我遇到了這個錯誤的麻煩,它說有關插入和外鍵的錯誤。你能幫助我嗎?這裏是我創建表的代碼和插入代碼enter code hereSQLite的Android外鍵

//Collection Create Table 
private static final String CREATE_TABLE_COLLECTION = "CREATE TABLE " 
     + COLLECTION_TABLE + "(" + COLLECTION_CODE + " TEXT PRIMARY KEY," + CUSTOMER_CODE 
     + " TEXT," + TRANSACTION_CODE + " TEXT," + TIN + " TEXT," + OR_NO + " TEXT," + DATE 
     + " TEXT," + AMOUNT_DUE + " TEXT," + AMOUNT_PAID + " TEXT," + REMARKS + " TEXT," + STATUS 
     + " TEXT," + " FOREIGN KEY ("+CUSTOMER_CODE+") REFERENCES "+CUSTOMER_TABLE+" ("+CUSTOMER_CODE+"))"; 


public void addCollection(String collection_code, String customer_code, String transaction_code, 
          String tin, String or_no, String date, String amount_due, String amount_paid, 
          String remarks, String status) { 
    SQLiteDatabase db = this.getWritableDatabase(); 
    //db.execSQL("PRAGMA foreign_keys=ON;"); 
    ContentValues values = new ContentValues(); 
    values.put(COLLECTION_CODE, collection_code); 
    values.put(CUSTOMER_CODE, customer_code); 
    values.put(TRANSACTION_CODE, transaction_code); 
    values.put(TIN, tin); 
    values.put(OR_NO, or_no); 
    values.put(DATE, date); 
    values.put(AMOUNT_DUE, amount_due); 
    values.put(AMOUNT_PAID, amount_paid); 
    values.put(REMARKS, remarks); 
    values.put(STATUS, status); 

    //inserting row 
    long id = db.insert(COLLECTION_TABLE, null, values); 
    db.close();// closing database connection 

    Log.d(TAG, "COLLECTION ADDED SUCCESSFULLY" + id); 

} 

,這裏是說你可能違反了你在哪裏SQLite的外鍵約束基於日誌的錯誤

enter image description here

+0

向客戶展示表定義。 –

回答

0

「嘗試在COLLECTION_TABLE表中插入一行,該表與您的CUSTOMER(我的猜測)父表中的任何行不相對應「。

確保在CUSTOMER表中有* KEY,然後才能將值插入到指向該* KEY的COLLECTION_TABLE中。希望這可以幫助。

參考:https://www.sqlite.org/foreignkeys.html