在student表中创建一个删除记录的触发器ctr_del,当删除student表中的记录时,如果该记录有选修课程,触发器将删除sc中相应的记录。并删除一个记录检验之。
时间: 2024-03-19 20:46:32 浏览: 54
C#编程 数据库操作应用 使用触发器删除相关联的两表间的数据(源码)(源码)
好的,我明白了你的问题。以下是创建该触发器的SQL语句:
```
CREATE TRIGGER ctr_del
AFTER DELETE ON student
FOR EACH ROW
BEGIN
DELETE FROM sc WHERE sc.s_id = OLD.s_id;
DELETE FROM record_check WHERE s_id = OLD.s_id;
END;
```
说明:
- `AFTER DELETE ON student` 表示在删除 `student` 表中的记录之后触发该触发器。
- `FOR EACH ROW` 表示对于每一行记录都执行该触发器。
- `OLD` 表示被删除的行,`OLD.s_id` 表示被删除行的 `s_id` 字段的值。
- `DELETE FROM sc WHERE sc.s_id = OLD.s_id;` 表示删除 `sc` 表中 `s_id` 等于被删除行的 `s_id` 字段值的记录。
- `DELETE FROM record_check WHERE s_id = OLD.s_id;` 表示删除 `record_check` 表中 `s_id` 等于被删除行的 `s_id` 字段值的记录。
这样,在删除 `student` 表中的记录时,该触发器将自动删除相关的 `sc` 表中的记录,并删除一个 `record_check` 表中的记录检验之。
阅读全文