我需要帮助编写MySQL触发器。
假设您有一个包含以下表格的学生数据库:
ENROLLMENT(SSN, CLASS_NO, GRADE)
CLASS(CLASS_NO, CLASS_TITLE, NO_OF_STUDENTS).
如果将新学生添加到NO_OF_STUDENTS
的{{1}}表中,我需要编写一个触发器,将ENROLLMENT
增加一个。
答案 0 :(得分:6)
你可以使用mysql触发器来做到这一点。尝试像
这样的东西CREATE TRIGGER 'database_name'.'after_insert_enrollment' AFTER INSERT ON 'ENROLLMENT'
FOR EACH ROW
BEGIN
UPDATE class SET NO_OF_STUDENTS = NO_OF_STUDENTS +1 WHERE CLASS_NO = NEW.CLASS_NO;
END
答案 1 :(得分:1)
如果删除了注册,我也会减少no_of_studens
。
delimiter //
CREATE TRIGGER AFTER_INS_ENROLLMENT AFTER INSERT ON ENROLLMENT
FOR EACH ROW
BEGIN
UPDATE CLASS SET NO_OF_STUDENTS = NO_OF_STUDENTS + 1 WHERE CLASS_NO = NEW.CLASS_NO;
END;//
delimiter;
delimiter //
CREATE TRIGGER AFTER_INS_ENROLLMENT AFTER DELETE ON ENROLLMENT
FOR EACH ROW
BEGIN
UPDATE CLASS SET NO_OF_STUDENTS = NO_OF_STUDENTS - 1 WHERE CLASS_NO = NEW.CLASS_NO;
END;//
delimiter ;
答案 2 :(得分:1)
为什么要将它存储在唱片中?也许你应该使用 从Class_Id = @Class_Id
的学生中选择COUNT(Student_Id)答案 3 :(得分:0)
你有没有试过像:
delimiter |
CREATE TRIGGER testref BEFORE INSERT ON ENROLLMENT
FOR EACH ROW BEGIN
UPDATE CLASS SET NO_OF_STUDENTS = NO_OF_STUDENTS + 1 WHERE CLASS_NO = NEW.CLASS_NO;
END;
|
delimiter ;