在course表上定义一个触发器course_tri,当删除一门课程时,将该课程的课程编号和课程名称添加到del_course表中
时间: 2023-12-03 12:45:30 浏览: 32
可以使用如下 SQL 语句创建触发器:
```
CREATE TRIGGER course_tri
AFTER DELETE ON course
FOR EACH ROW
INSERT INTO del_course (course_id, course_name)
VALUES (OLD.course_id, OLD.course_name);
```
该触发器会在 `course` 表中删除一条记录后执行。它会将被删除的课程编号和课程名称插入到 `del_course` 表中。 `OLD` 是一个伪行,引用已被删除的行的值。因此, `OLD.course_id` 和 `OLD.course_name` 分别代表被删除的课程的课程编号和课程名称。
相关问题
创建触发器cno_tri,当更改表course中某门课的课程编号时,同时将score表中的课程编号全部自动更
触发器的创建语句如下:
```
CREATE TRIGGER cno_tri AFTER UPDATE ON course
FOR EACH ROW
BEGIN
UPDATE score SET cno = NEW.cno WHERE cno = OLD.cno;
END;
```
该触发器名为cno_tri,当course表中的某个课程的课程编号更新时,触发器将自动执行。每次更新一行,触发器都会被激活一次。
在触发器的代码块中,使用UPDATE语句将score表中与更新前课程编号相同的课程编号更新为更新后的课程编号。其中,OLD.cno表示更新前的课程编号,NEW.cno表示更新后的课程编号。
创建触发器cno_tri,当更改表course中某门课的课程编号时,同时将score表中的课程编号全部自动更改。
可以使用触发器来实现这个功能,具体的代码如下:
```
CREATE TRIGGER cno_tri
AFTER UPDATE ON course
FOR EACH ROW
BEGIN
IF NEW.cno != OLD.cno THEN
UPDATE score SET cno = NEW.cno WHERE cno = OLD.cno;
END IF;
END;
```
说明:
- 创建一个名为`cno_tri`的触发器
- 触发器在`course`表上进行更新操作时执行
- 对于每一行进行操作
- 如果新的课程编号(`NEW.cno`)不等于旧的课程编号(`OLD.cno`),则在`score`表中更新所有旧的课程编号为新的课程编号
注意,如果`score`表中有其他与`course`表相关联的数据,则可能会影响这些数据。因此,在使用此触发器之前,请务必确认此触发器对整个数据库的影响。