Wenn ich zwei Beziehungen in einer Datenbank, wie folgt aus:SQL ON DELETE CASCADE, wie erfolgt die Löschung?
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
);
und ich schaffen eine Fremdschlüsselbeziehung zwischen den beiden, wie folgt aus:
ALTER TABLE BookCourses
ADD FOREIGN KEY (Course)
REFERENCES Courses(Code)
ON DELETE CASCADE;
Dann können Sie sehen, dass das Course
Attribut in der BookCourses
Beziehung verweist das Code
Attribut in der Courses
Beziehung.
Meine Frage ist, wenn eine Löschung in einer der beiden Beziehungen auftritt, welche Art kaskadiert die Löschung? Wenn ich ein Tupel in der Courses
-Beziehung lösche, löscht es dann alle referenzierenden Tupel in der BookCourses
-Beziehung oder ist es umgekehrt?
Vielen Dank für Ihre Zeit.
Man braucht sich nur die Frage, warum die 'Categories' Tabelle einen' CourseID' als Primärschlüssel hat, während die 'Courses' Tabelle, die die' EntryID' hat. Sie müssen Ihre Namensauswahl ernsthaft überdenken. –
Bitte verwenden Sie die richtigen Spaltennamen, um Verwechslungen zu vermeiden und die DB-Struktur zu löschen. –