数据库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 分钟前
SQL系列2:PostgreSQL 日期时间字段类型选择指南
数据库·sql·postgresql
SAP上海工博云署17 分钟前
2026年中小企业SAP服务商选型技术解析
大数据·运维·数据库·人工智能·信息可视化·运维开发·信息与通信
RestCloud18 分钟前
版本迭代丨谷云科技ETLCloud V4.2版本更新速览
数据库·doris·etl·etlcloud·数据集成平台·datahub·ftp处理
Adair_z28 分钟前
[SEO艺术重读] 第13篇 SEO教育与研究
java·网络·数据库
不爱吃糖の糖糖32 分钟前
RAG 04:向量数据库与索引算法
数据库·算法
逍遥德35 分钟前
PostgreSQL --- JSON 函数详解
数据库·sql·postgresql·json
Larcher35 分钟前
后续:上次的优化又崩了?这次是 SQLite WAL 把 Codex 直接卡死了
数据库·人工智能·github
小马爱打代码40 分钟前
MySQL高可用与扩展:主从复制、读写分离、分库分表
服务器·数据库·mysql
m0_7408596241 分钟前
Docker安装常见数据库命令汇总(2026)
数据库·docker·容器
j7~1 小时前
【MYSQL】 复合查询--详解(重点)
数据库·mysql·子查询·多表查询·自链接·合并查询