创建一个insert_sc_trigger触发器,功能是向SC表中插入平时成绩为空时,把考试成绩置0,如果不为空,则按设定值插入;然后向SC表中添加一条新信息(s001,0433,null,0.3,null)
时间: 2024-12-25 10:31:27 浏览: 2
创建一个名为`insert_sc_trigger`的数据库触发器,其目的是在向`SC`表中插入数据时自动处理特殊情况。这个触发器会在尝试插入一条记录时检查`平时成绩`字段,如果该字段值为空,它会将`平时成绩`设置为0;如果有值,则按照预设规则(这里假设是默认值)进行插入。
以下是SQL触发器的示例编写:
```sql
CREATE TRIGGER insert_sc_trigger
AFTER INSERT ON SC
FOR EACH ROW
BEGIN
IF NEW.平时成绩 IS NULL THEN
UPDATE SC SET 平时成绩 = 0 WHERE id = NEW.id;
ELSEIF NEW.平时成绩 IS NOT NULL AND NEW.平时成绩 < 0.3 DEFAULT_VALUE -- 假设默认值为0.3
THEN
UPDATE SC SET 平时成绩 = DEFAULT_VALUE WHERE id = NEW.id;
ELSE
-- 如果平时成绩非空且大于等于预设值,不做额外操作,直接插入
-- 这里省略了具体的INSERT语句,因为实际插入应该在UPDATE之后完成
END IF;
END;
```
现在我们可以尝试添加一条新的信息,比如学生s001在课程0433中的情况:
```sql
INSERT INTO SC (student_id, course_code, exam_score, regular_score)
VALUES ('s001', '0433', NULL, 0.3); -- 新的信息,考试成绩已知,平时成绩由触发器处理
```
阅读全文