在选课表上建立一个 Insert 触发器 ins_cheng,假设在插入选课表记录时,如果成绩大 于等于 90 分,小于等于 100 分时,给出在线提示语句“你很优秀,继续加油!”,并设计 一条插入操作语句执行该触发器。说明该触发器中的 inserted 表的内容和作用?
时间: 2024-12-14 13:18:31 浏览: 14
在MySQL数据库中,我们可以创建一个名为`ins_cheng`的INSERT触发器来满足这个需求。当有新的记录插入到选课表(假设表名是`scores`)时,这个触发器会被激活。在SQL中,`inserted`关键字是在触发器中的一个特殊行集,它包含了刚刚插入的新行信息。
以下是创建这个触发器的步骤:
```sql
CREATE TRIGGER ins_cheng
AFTER INSERT ON scores
FOR EACH ROW
BEGIN
IF NEW.score BETWEEN 90 AND 100 THEN
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = '你很优秀,继续加油!';
END IF;
END;
```
在这个触发器中:
- `AFTER INSERT ON scores`: 指定在`scores`表的插入操作之后执行。
- `FOR EACH ROW`: 对每一行新插入的数据都执行一次触发器内的代码。
- `IF NEW.score BETWEEN 90 AND 100`: 判断新插入的成绩是否在90到100分之间。
- `SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT`: 如果条件成立,发送一个错误信号,但是并不会实际中断插入,只是返回一个提示消息给用户。
`NEW.score`代表了新插入数据的score字段值,所以在这里起到了获取当前插入成绩的作用。
阅读全文