创建触发器,作用是:当在学生表S中删除某一个学生时,在学生选课表SC中的选课记录也全部被删除。 创建触发器,该触发器能够保证在学生选课表SC表中添加新的记录时,新学生的学号SNO必须已经存在于学生基本信息表S中。
时间: 2024-06-06 21:09:22 浏览: 140
创建触发器
回答:
对于第一个问题,您可以使用以下 SQL 语句创建触发器:
CREATE TRIGGER delete_student
AFTER DELETE
ON S
FOR EACH ROW
BEGIN
DELETE FROM SC WHERE SNO = OLD.SNO;
END;
该触发器会在从学生表 S 中删除某个学生时触发,自动删除学生选课表 SC 中与该学生相关的所有选课记录。
对于第二个问题,您可以使用以下 SQL 语句创建触发器:
CREATE TRIGGER add_course
BEFORE INSERT
ON SC
FOR EACH ROW
BEGIN
DECLARE sno_exists INT;
SELECT COUNT(*) INTO sno_exists FROM S WHERE SNO = NEW.SNO;
IF sno_exists = 0 THEN
SIGNAL SQLSTATE '45000'
SET MESSAGE_TEXT = '该学生不存在!';
END IF;
END;
该触发器会在向学生选课表 SC 中插入新的记录之前触发,如果新插入的记录中的学生学号 SNO 不存在于学生表 S 中,则触发器会抛出错误信息,阻止插入操作。
阅读全文