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 Course
atributo en la BookCourses
relación hace referencia al Code
atributo en la Courses
relació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 Courses
relación, ¿eliminará todas las tuplas de referencia en la BookCourses
relación, o es al revés?
Categories
tabla tiene unaCourseID
clave primaria mientras que laCourses
tabla tiene la claveEntryID
. Realmente necesita repensar sus opciones de nombres.