我正在node / graphql应用程序中使用软件包sqlite3。我创建了一些表,其中一个表包含外键:
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的数据库浏览器”与已创建的数据库进行交互时,当我试图通过在此联接表中放置错误的studentId或courseId来违反参照完整性时,收到一条错误消息。但是,当我运行以下代码以在联接表中执行插入操作时:
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