Se ho due relazioni in un database, come questo:SQL ON DELETE CASCADE, In quale modo si verifica la cancellazione?
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
);
e stabilisce una relazione di chiave esterna tra i due, in questo modo:
ALTER TABLE BookCourses
ADD FOREIGN KEY (Course)
REFERENCES Courses(Code)
ON DELETE CASCADE;
allora si può vedere che l'attributo Course
nella relazione BookCourses
fa riferimento all'attributo Code
nella relazione Courses
.
La mia domanda è quando si verifica una cancellazione in una delle due relazioni, in che modo viene eliminata la cascata? Se elimino una tupla nella relazione Courses
, eliminerà tutte le tuple di riferimento nella relazione BookCourses
oppure è il contrario?
Grazie per il vostro tempo.
Ci si chiede il motivo per cui solo la tabella 'Categories' ha un' CourseID' come chiave primaria, mentre la tabella 'Courses' ha la' EntryID'. Hai seriamente bisogno di ripensare alle tue scelte di denominazione. –
Si prega di utilizzare i nomi delle colonne corretti per evitare confusione e cancellare la struttura del DB. –