MySQL 触发器: 7)创建student触发器,使得学生的sex输入值为(‘0’或者‘1’)的时候自动转化成相对应的(‘M’与‘F’). 8)修改或者重建course表格,使得course新添加一个熟悉num_student,对student_course添加一个触发器,使得当选修该门课的学生人数达到num_student以后计算该门课的平均分,如果平均分小于60,给每个学生提分使之达到60。 禁用再启用student表上的所有触发器,禁用再启用例子8)中的触发器
时间: 2023-02-13 21:43:57 浏览: 143
为了创建一个触发器来改变学生的性别,你可以使用以下 SQL 语句:
```
CREATE TRIGGER student_sex_change
BEFORE UPDATE ON student
FOR EACH ROW
BEGIN
IF NEW.sex = '0' THEN
SET NEW.sex = 'M';
ELSEIF NEW.sex = '1' THEN
SET NEW.sex = 'F';
END IF;
END;
```
为了修改或重建 course 表格并在其中添加一个新的 num_student 字段,你可以使用以下 SQL 语句:
```
ALTER TABLE course
ADD COLUMN num_student INT;
```
为了创建一个触发器来计算选修某门课的学生人数并对学生进行提分,你可以使用以下 SQL 语句:
```
CREATE TRIGGER student_grade_change
AFTER INSERT ON student_course
FOR EACH ROW
BEGIN
DECLARE avg_grade FLOAT;
SET avg_grade = (SELECT AVG(grade) FROM student_course WHERE course_id = NEW.course_id);
IF avg_grade < 60 THEN
UPDATE student SET grade = grade + (60 - avg_grade) WHERE student_id = NEW.student_id;
END IF;
END;
```
要禁用或启用 student 表上的所有触发器,你可以使用以下 SQL 语句:
```
DISABLE TRIGGER ALL ON student;
ENABLE TRIGGER ALL ON student;
```
要禁用或启用 student_grade_change 触发器,你可以使用以下 SQL 语句:
```
DISABLE TRIGGER student_grade_change ON student_course;
ENABLE TRIGGER student_grade_change ON student_course;
```
阅读全文