2016-01-22 66 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