数据库5(MySQL版)

作业要求

触发器

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);

相关推荐
云草桑3 小时前
DBA 运维 数据库 备份 还原 MSSQL
数据库·dba·mssql
给朕把屎铲了3 小时前
涛思数据库:DB error: some vnode/qnode/mnode(s) out of service (10.703928s)
大数据·数据库·涛思数据
先做个垃圾出来………3 小时前
如何判断一个SQL逻辑是否需要拆分为多个事务单元
数据库·sql·oracle
嫂子的姐夫3 小时前
py连接MongoDB
数据库·爬虫·mongodb
suoyue_zhan3 小时前
GBase 8s V8.8 安装部署实践指南
前端·数据库·chrome
晨曦5432103 小时前
数据库视图:数据安全与查询利器
数据库·sql·mysql
漂亮的小碎步丶4 小时前
【3】Spring事务管理
java·数据库·spring
MACKEI4 小时前
数据库操作性能优化方法文档
数据库·性能优化
赤龙绕月4 小时前
SQLite NET
数据库·sqlite
方方怪4 小时前
数据库 SQL 语句大全
数据库·sql·oracle