当前位置 博文首页 > 无限迭代中......:《数据库系统实训》实验报告——触发器
1)添加订单物品时,自动获取物品的价格
触发器创建SQL:
create trigger auto_get_price before insert on orderitems
for each row
begin
set new.item_price = (
select prod_price from products
where prod_id = new.prod_id
);
end;
测试语句:
insert into orderitems values(20006,2,'ANV02','20',0);
结果截图:
可以看到,订单的商品单价被触发器修改为正确的价格,而非输入的错误数据
2)更新物品标签时,自动更新时间
触发器创建SQL:
create trigger auto_update_datetime before update on productnotes
for each row
begin
set new.note_date = now();
end;
测试语句:
update productnotes set note_text=concat(note_text, " new!") where note_id=102;
结果截图:
可以看到,productnotes中note_text被修改,并且其note_date也被触发器修改为update执行的时间。
1)
触发器创建SQL:
create trigger check_order before update on order
for each row
begin
set new.amount = (
select sum(total_price) from order_details
where order_id = new.id
);
set new.totalnumber = (
select count(0) from order_details
where order_id = new.id
);
end;
测试语句:insert into types values(‘modelx’,‘ModelX’,‘tesla’,null,null,null,‘电动’);
结果截图: