创建触发器,其功能是当删除C表中的课程时,同时删除SC表和TC表中的关于此课程的数据。
时间: 2024-03-20 12:39:38 浏览: 22
您可以使用MySQL数据库的触发器来实现这个功能。以下是创建该触发器的示例代码:
```
CREATE TRIGGER delete_course
AFTER DELETE ON C
FOR EACH ROW
BEGIN
DELETE FROM SC WHERE course_id = OLD.course_id;
DELETE FROM TC WHERE course_id = OLD.course_id;
END;
```
解释一下以上代码的含义:
- `delete_course` 是触发器的名称。
- `AFTER DELETE ON C` 表示该触发器在 C 表上的删除操作之后执行。
- `FOR EACH ROW` 表示该触发器对 C 表中每一行数据都会执行。
- `OLD.course_id` 表示在 C 表中被删除的那一行数据的 course_id 值。
- `DELETE FROM SC WHERE course_id = OLD.course_id;` 表示删除 SC 表中所有 course_id 等于被删除的那一行数据的 course_id 的数据。
- `DELETE FROM TC WHERE course_id = OLD.course_id;` 表示删除 TC 表中所有 course_id 等于被删除的那一行数据的 course_id 的数据。
这样,当您删除 C 表中的一行数据时,该触发器就会自动执行,将 SC 表和 TC 表中关于这个课程的数据一并删除。
相关问题
在教学数据库teaching中创建触发器,其功能是当删除C表中的课程时,同时删除SC表和TC表中关于此课程的数据。
您可以使用以下SQL语句来创建一个触发器,实现当删除C表中的课程时,同时删除SC表和TC表中关于此课程的数据:
```
CREATE TRIGGER delete_course_trigger
AFTER DELETE ON C
FOR EACH ROW
BEGIN
DELETE FROM SC WHERE Cno = OLD.Cno;
DELETE FROM TC WHERE Cno = OLD.Cno;
END;
```
这个触发器会在每次从C表中删除一条记录时被触发,然后删除SC表和TC表中与此课程相关的数据。其中,OLD.Cno代表被删除的记录的课程编号。
在教学数据库 teaching 中创建触发器,其功能是当删除C表中的课程时,同时删除 SC 表和 TC表中关于此课程的数据。
可以使用如下SQL语句创建该触发器:
```
CREATE TRIGGER trg_delete_course
AFTER DELETE
ON teaching.C
FOR EACH ROW
BEGIN
DELETE FROM teaching.SC WHERE SC.Cno = OLD.Cno;
DELETE FROM teaching.TC WHERE TC.Cno = OLD.Cno;
END;
```
这个触发器会在每次从C表中删除一条记录时执行,删除SC表和TC表中对应课程的记录。其中`OLD.Cno`表示被删除的记录的Cno字段的值。