     member_id INT(10),
     capacity INT(3) NOT NULL,
     PRIMARY KEY (course_id, semester, year, section_no),
-    FOREIGN KEY (course_id) REFERENCES Courses(course_id) ON DELETE CASCADE,
-    FOREIGN KEY (member_id) REFERENCES Instructors(member_id) ON DELETE SET NULL
+    FOREIGN KEY (course_id) REFERENCES Courses(course_id) 
+        ON DELETE CASCADE
+        ON UPDATE CASCADE,
+    FOREIGN KEY (member_id) REFERENCES Instructors(member_id) 
+        ON DELETE SET NULL
+        ON UPDATE CASCADE
 ) DEFAULT CHARACTER SET = utf8;
 
 CREATE TABLE IF NOT EXISTS Zipcode(

    punishment_id INT(10) NOT NULL,
    timestamp TIMESTAMP NOT NULL,
    PRIMARY KEY (sid, punishment_id, timestamp),
    FOREIGN KEY (sid) REFERENCES Students(sid) ON DELETE NO ACTION,
    FOREIGN KEY (punishment_id) REFERENCES Punishment_Criteria(punishment_id) ON DELETE NO ACTION
) DEFAULT CHARACTER SET = utf8;

CREATE TABLE IF NOT EXISTS Semesters_Period(

    grade VARCHAR(2) NOT NULL,
    status CHAR(1),
    PRIMARY KEY (sid, course_id, semester, year, section_no),
    FOREIGN KEY (sid) REFERENCES Students(sid) 
        ON DELETE NO ACTION
        ON UPDATE CASCADE,
    FOREIGN KEY (course_id, semester, year, section_no) REFERENCES Sections(course_id, semester, year, section_no) 
        ON DELETE NO ACTION
        ON UPDATE NO ACTION  # Should create new section instead
) DEFAULT CHARACTER SET = utf8;

CREATE TABLE IF NOT EXISTS Grades(
