创建触发器实现检查约束, -- 选择studentsdb数据库,在向grade插入记录时,分数字段的值只能为空,或者取值0-100。 -- 如果分数字段的值不满足要求,小于0则填入0,大于100则填入100。 use studentsdb; 触发事件 insert 触发时机 before create trigger t1 before insert on grade for each row begin if new.分数<0 then set new.分数=0; elseif new.分数>100 then set new.分数=100; end if; end; -- 激活触发器 insert into grade(学号,课程编号,分数) values('0004','0001',250);
时间: 2024-03-15 18:45:40 浏览: 33
数据库学习中的触发器
这段代码已经实现了检查约束的触发器,并且插入了一个测试数据。如果您需要再次执行这段代码,建议先删除已经存在的触发器,避免重复创建,可以使用以下代码删除触发器:
```sql
DROP TRIGGER IF EXISTS t1;
```
然后再执行您提供的代码:
```sql
use studentsdb;
-- 创建触发器
create trigger t1 before insert on grade for each row
begin
if new.分数 < 0 then
set new.分数 = 0;
elseif new.分数 > 100 then
set new.分数 = 100;
end if;
end;
-- 插入测试数据
insert into grade(学号, 课程编号, 分数) values('0004', '0001', 250);
```
执行完以上代码后,触发器会检查插入的分数值是否合法,如果不合法将自动调整为0或者100。最终插入的记录为('0004', '0001', 100)。
阅读全文