3、在教学数据库teaching中创建触发器,其功能是当删除C表中的课程时,同时删除SC表和TC表中关于此课程的数据。小
时间: 2024-02-27 18:55:03 浏览: 56
在 MySQL 中创建触发器可以使用 CREATE TRIGGER 语句,具体的触发器代码如下:
```
CREATE TRIGGER delete_course_trigger
AFTER DELETE ON C
FOR EACH ROW
BEGIN
DELETE FROM SC WHERE SC.Cno = old.Cno;
DELETE FROM TC WHERE TC.Cno = old.Cno;
END;
```
这个触发器会在 C 表中的某个课程被删除后执行,然后删除 SC 表和 TC 表中与该课程相关的数据。其中,old.Cno 表示被删除的课程的编号。
相关问题
2、在教学数据库teaching中创建触发器,当修改sc表中的成绩时,要求触发器完成以下任务:当修改后的成绩小于60分时,按照成绩等于60设定,当修改后的成绩大于或等于90分时,按照成绩等于90设定。
可以使用以下SQL语句创建该触发器:
```
CREATE TRIGGER update_sc_trigger
AFTER UPDATE ON sc
FOR EACH ROW
BEGIN
IF NEW.score < 60 THEN
SET NEW.score = 60;
ELSEIF NEW.score >= 90 THEN
SET NEW.score = 90;
END IF;
END;
```
这个触发器会在每次更新sc表中的一行数据时执行。如果新的成绩小于60,那么就将新的成绩设为60;如果新的成绩大于或等于90,那么就将新的成绩设为90。这样就能够保证成绩不会低于60分或高于90分。
使用MySQL,在教学数据库teaching中创建触发器,当修改SC表中的成绩时,要求触发器完成以下任务 (1)当修改后的成绩小于60分时,按照成绩等于60分设定。 (2)当修改后的成绩大于或等于90分时,按照成绩等于90分设定。
可以使用如下的SQL语句来创建该触发器:
```
CREATE TRIGGER update_score
BEFORE UPDATE ON teaching.sc
FOR EACH ROW
BEGIN
IF NEW.score < 60 THEN
SET NEW.score = 60;
ELSEIF NEW.score >= 90 THEN
SET NEW.score = 90;
END IF;
END;
```
该触发器被命名为 `update_score`,在 `teaching` 数据库中的 `sc` 表上进行的 `UPDATE` 操作会触发该触发器。`FOR EACH ROW` 表示该触发器针对每一行数据都会触发。在触发器中,会先判断新的成绩是否小于60分,如果是,则将成绩设为60分;如果成绩大于或等于90分,则将成绩设为90分。`NEW.score` 表示被更新的行的 `score` 字段的新的值。如果希望在修改后能够及时看到结果,可以使用 `AFTER UPDATE` 来代替 `BEFORE UPDATE`。
阅读全文