Cascade will work when you delete something on table
Courses. Any record on table
BookCourses that has reference to table
Courses will be deleted automatically.
But when you try to delete on table
BookCourses only the table itself is affected and not on the
follow-up question: why do you have
CourseID on table Category?
Maybe you should restructure your schema into this,
CREATE TABLE Categories ( Code CHAR(4) NOT NULL PRIMARY KEY, CategoryName VARCHAR(63) NOT NULL UNIQUE ); CREATE TABLE Courses ( CourseID INT NOT NULL PRIMARY KEY, BookID INT NOT NULL, CatCode CHAR(4) NOT NULL, CourseNum CHAR(3) NOT NULL, CourseSec CHAR(1) NOT NULL, ); ALTER TABLE Courses ADD FOREIGN KEY (CatCode) REFERENCES Categories(Code) ON DELETE CASCADE;
~ Answered on 2012-11-18 21:38:38