Обеспечение ссылочной целостности в базе данных SQLite с использованием Node - PullRequest
0 голосов
/ 07 июня 2019

Я использую пакет 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...