Si j'ai deux relations dans une base de données, comme ceci:
CREATE TABLE Courses (
CourseID int NOT NULL PRIMARY KEY,
Course VARCHAR(63) NOT NULL UNIQUE,
Code CHAR(4) NOT NULL UNIQUE
);
CREATE TABLE BookCourses (
EntryID int NOT NULL PRIMARY KEY,
BookID int NOT NULL,
Course CHAR(4) NOT NULL,
CourseNum CHAR(3) NOT NULL,
CourseSec CHAR(1) NOT NULL
);
et j'établis une relation de clé étrangère entre les deux, comme ceci:
ALTER TABLE BookCourses
ADD FOREIGN KEY (Course)
REFERENCES Courses(Code)
ON DELETE CASCADE;
Ensuite, vous pouvez voir que l' Courseattribut dans la BookCoursesrelation fait référence à l' Codeattribut dans la Coursesrelation.
Ma question est lorsqu'une suppression se produit dans l'une des deux relations, de quelle manière la suppression en cascade? Si je supprime un tuple dans la Coursesrelation, supprimera-t-il tous les tuples référençant dans la BookCoursesrelation, ou est-ce l'inverse?
Categoriestable aCourseIDcomme clé primaire alors que laCoursestable a leEntryID. Vous devez sérieusement repenser vos choix de dénomination.