Ваш внешний ключ находится в столбце "qid", а не в столбце "_id".
Этот оператор INSERT
INSERT INTO Ques_Ans VALUES(20, 1, 0);
должен выброситьошибка
Error: table Ques_Ans has 4 columns but 3 values were supplied
Эта вставка должна быть успешной.
INSERT INTO Ques_Ans VALUES(20, 1, 0, 0);
Эта ошибка должна быть неудачной.
INSERT INTO Ques_Ans VALUES(21, 2, 0, 0);
Error: foreign key constraint failed
Позже.,.
Поскольку он работает в sqlite, но не в вашем эмуляторе, возможно, проблема в эмуляторе или в вашем коде.
Это идиома для транзакций базы данных.
db.beginTransaction();
try {
...
db.setTransactionSuccessful();
} finally {
db.endTransaction();
}
Документы по Android предлагают использовать insert () вместо execSQL () .Убедитесь, что вы перехватываете, ловите или проверяете наличие ошибок в каждой функции, которая может возвращать ошибку.Так, например, если вы переключитесь на insert (), проверьте его возвращаемое значение для -1.
Если это не поможет, вы можете попробовать пометить этот вопрос с помощью «Java» (например), илизадавать новый вопрос, который фокусируется на вашем коде и на обнаружении ошибок.