触发器
一、建表
mysql> use mydb16_trigger;
mysql> create table goods
(
gid char(8) primary key, #商品编号
name varchar(10), #商品名
price decimal(8,2), #价格
num int #数量
);
mysql> create table orders
(
oid int primary key auto_increment, #订单号
gid char(10) not null, #商品号
name varchar(10), #商品名
price decimal(8,2), #价格
onum int, #订单数量
otime date #订单时间
);
二、在商品表中导入商品记录
mysql> insert into goods values
('A0001', '橡皮', 2.5, 100),
('B0001', '小楷本', 2.8, 210),
('C0001', '铅笔', 1.2, 120),
('D0001', '计算器', 28, 20);
三、创建触发器
(一)数量同步功能
(二)订单取消,数量恢复
(三)订单修改,数量同步
下单
订单修改
存储过程
一、S1
mysql> use mydb7_openlab;
mysql> delimiter $$ #更改执行语句分割符
mysql> create procedure s1() #建立存储过程s1
begin
select name,incoming from emp_new;
end $$
mysql> delimiter ; #还原分割符
mysql> call s1(); #调用s1
二、S2
mysql> desc emp_new; #查看表结构
mysql> delimiter $$
mysql> create procedure s2(in in_name varchar(11), out out_age int)
begin
select age into out_age from emp_new where name=in_name;
end $$
三、S3
mysql> delimiter $$
mysql> create procedure s3(in in_dept int, out avg_sal float)
begin
select avg(incoming) into avg_sal from emp_new where dept2=in_dept group by dept2;
end $$
mysql> delimiter ;
mysq1> ca11 s3(101,@avg_sal);