使用MySQL,在教学数据库teaching中创建触发器,当修改SC表中的成绩时,要求触发器完成以下任务 (1)当修改后的成绩小于60分时,按照成绩等于60分设定。 (2)当修改后的成绩大于或等于90分时,按照成绩等于90分设定。
时间: 2024-02-27 15:55:42 浏览: 21
可以使用如下的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`。
相关问题
使用MySQL,在教学数据库teaching中创建触发器,其功能是当删除C表中的课程时,同时删除SC表和TC表中关于此课程的数据。
可以使用如下的SQL语句来创建该触发器:
```
CREATE TRIGGER delete_course
AFTER DELETE ON teaching.c
FOR EACH ROW
BEGIN
DELETE FROM teaching.sc WHERE cno = OLD.cno;
DELETE FROM teaching.tc WHERE cno = OLD.cno;
END;
```
该触发器被命名为 `delete_course`,在 `teaching` 数据库中的 `c` 表上进行的 `DELETE` 操作会触发该触发器。`FOR EACH ROW` 表示该触发器针对每一行数据都会触发。`OLD.cno` 表示被删除的行的 `cno` 字段的值。在触发器中,会先删除 `sc` 表中所有 `cno` 字段等于被删除行的 `cno` 字段的数据,然后再删除 `tc` 表中所有 `cno` 字段等于被删除行的 `cno` 字段的数据。
3、在教学数据库teaching中创建触发器,其功能是当删除C表中的课程时,同时删除SC表和TC表中关于此课程的数据。小
在 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 表示被删除的课程的编号。