用数据库创建“t_delete”触发器,实现“成绩”表与"学生"表的级联删除,当学生表中删除一条记录时,成绩表中该生的成绩信息自动删除
时间: 2023-06-16 22:03:04 浏览: 165
在创建触发器之前,需要先创建两个表:学生表(student)和成绩表(score)。假设学生表中的主键为student_id,成绩表中的外键为student_id,表示该成绩对应的学生id。
创建学生表:
```
CREATE TABLE student (
student_id INT PRIMARY KEY,
name VARCHAR(50),
age INT,
gender VARCHAR(10)
);
```
创建成绩表:
```
CREATE TABLE score (
score_id INT PRIMARY KEY,
student_id INT,
course VARCHAR(50),
score INT,
FOREIGN KEY (student_id) REFERENCES student(student_id)
);
```
然后,我们可以创建一个名为“t_delete”的触发器,实现“成绩”表与"学生"表的级联删除:
```
CREATE TRIGGER t_delete
AFTER DELETE ON student
FOR EACH ROW
BEGIN
DELETE FROM score WHERE student_id = OLD.student_id;
END;
```
这个触发器的作用是,在学生表中删除一条记录时,会自动删除成绩表中该生的成绩信息。触发器中的OLD关键字表示被删除的行,即触发器针对的是学生表中的删除操作,所以OLD.student_id就是被删除行的学生id,用来在成绩表中删除该学生的成绩信息。
这样,当我们在学生表中删除一条记录时,触发器会自动将该学生在成绩表中的成绩信息也删除。
阅读全文