Si tengo dos relaciones en una base de datos, así:
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
);
y establezco una relación de clave externa entre los dos, así:
ALTER TABLE BookCourses
ADD FOREIGN KEY (Course)
REFERENCES Courses(Code)
ON DELETE CASCADE;
Entonces puede ver que el Courseatributo en la BookCoursesrelación hace referencia al Codeatributo en la Coursesrelación.
Mi pregunta es cuando se produce una eliminación en cualquiera de las dos relaciones, ¿de qué manera la eliminación en cascada? Si elimino una tupla en la Coursesrelación, ¿eliminará todas las tuplas de referencia en la BookCoursesrelación, o es al revés?
Categoriestabla tiene unaCourseIDclave primaria mientras que laCoursestabla tiene la claveEntryID. Realmente necesita repensar sus opciones de nombres.