创建一个触发器delete_s_trigger,当删除s表中某个人记录时,同时删除sc表中相应的所有课程的成绩。
时间: 2024-10-22 14:27:02 浏览: 17
mysql中触发器使用详解.docx
5星 · 资源好评率100%
创建一个触发器`delete_s_trigger`可以利用数据库系统的特性,在删除`s`表(人员表)中特定记录的同时,自动删除关联的`sc`表(成绩表)中的相关数据。这是一个常见的级联删除机制。以下是这个操作在SQL中的一般步骤:
```sql
CREATE TRIGGER delete_s_trigger
AFTER DELETE ON s
FOR EACH ROW
BEGIN
DELETE FROM sc
WHERE sc.person_id = OLD.id; -- 旧记录的id可能会有所不同,这里假设person_id是关联字段
END;
```
在这个例子中:
- `CREATE TRIGGER`声明了触发器。
- `delete_s_trigger`是触发器的名称。
- `AFTER DELETE ON s`指明当`s`表有行被删除后,触发器会被激活。
- `FOR EACH ROW`表示对于删除的每一行都会执行一次触发器内的SQL。
- `DELETE FROM sc WHERE sc.person_id = OLD.id`是关键部分,它会查找`sc`表中`person_id`等于刚被删除的`s`表中对应记录的`id`的所有行,并进行删除。
阅读全文