数据库5(MySQL版)

发布于:2025-02-10 ⋅ 阅读:(55) ⋅ 点赞:(0)

作业要求

触发器

mysql> create trigger after_order_insert
    -> after insert on orders
    -> for each row
    -> update goods set num = num - new.onum where gid = new.gid;

mysql> create trigger after_order_delete
    -> after delete on orders
    -> for each row
    -> update goods set num = num + old.onum where gid = old.gid;

mysql> create trigger after_order_update
    -> after update on orders
    -> for each row
    -> begin
    ->     if old.onum <> new.onum then
    ->         update goods set num = num - new.onum + old.onum where gid = new.gid;
    ->     end if;
    -> end$$

-- 插入订单

insert into orders (gid, name, price, onum, otime) values ('a0001', '橡皮', 2.5, 5, curdate());

-- 检查商品表中橡皮的数量

select num from goods where gid = 'a0001';

-- 删除订单

delete from orders where oid = 1;

-- 检查商品表中橡皮的数量

select num from goods where gid = 'a0001';

-- 更新订单 update orders set onum = 10 where oid = 1;

-- 检查商品表中橡皮的数量

select num from goods where gid = 'a0001';

存储过程

mysql> create procedure s1()
    -> select name, incoming from emp_new;

mysql>  create procedure s2(in emp_name varchar(50))
    -> select age from emp_new where name = emp_name;

mysql>  create procedure s3(in dept_id int)
    -> select avg(incoming) as avg_incoming from emp_new where sid = dept_id;

mysql> call s1();

mysql> call s2('张三');

mysql> call s3(101);


网站公告

今日签到

点亮在社区的每一天
去签到