Я использую пакет sqlite3 в приложении node / graphql.Я создал несколько таблиц, и одна из них включает внешние ключи:
CREATE TABLE IF NOT EXISTS 'StudentTakesCourse' (
'studentId' INTEGER,
'courseId' INTEGER,
PRIMARY KEY ('studentId', 'courseId'),
FOREIGN KEY ('courseId') REFERENCES 'Courses' ('courseId') ON DELETE CASCADE,
FOREIGN KEY ('studentId') REFERENCES 'Students' ('studentId') ON DELETE CASCADE
);
Когда я использую «Браузер БД для SQLite» для взаимодействия с создаваемой базой данных, я получаю сообщение об ошибке, когда пытаюсь нарушить ссылочную базу данных.целостность, поместив неверный идентификатор студента или курса в эту таблицу соединений.Однако, когда я запускаю этот код, который выполняет вставку в таблицу соединений:
async function addStudentToCourse(parent, args, context, info) {
try {
await context.db.addStudentToCourse(args.studentId, args.courseId);
} catch(err) {
throw err;
}
return null;
}
с неправильными значениями, исключение не выдается, и неправильные значения сохраняются в базе данных.Как я могу гарантировать, что исключение выдается при нарушении ссылочной целостности?Я установил пакет с прямой > npm add sqlite3