
1.创建第一个触发器
sql
mysql> delimiter //
mysql> create trigger after_insert_orders_trigger
-> after insert on orders for each row
-> begin
-> update goods set num=num-new.enum where gid=new.gid;
-> end //
Query OK, 0 rows affected (0.00 sec)
mysql> delimiter ;
验证触发器是否能实现预期效果
sql
mysql> insert into orders (gid,name,price,enum,otime) values ('A0001','橡皮',2.5,10,now());
向订单表插入一条购买订单后,商品表触发更新(橡皮的数量从100减到90)

2.创建第二个触发器
sql
mysql> delimiter //
mysql> create trigger after_delete_orders_trigger
-> after delete on orders for each row
-> begin
-> update goods set num=num+old.enum where gid=old.gid;
-> end //
Query OK, 0 rows affected (0.00 sec)
mysql> delimiter ;
验证触发器是否能实现预期效果(删除刚刚创建的订单,橡皮的库存数恢复100)

3.创建第三个触发器
sql
mysql> delimiter //
mysql> create trigger after_update_orders_trigger
-> after update on orders for each row
-> begin
-> update goods set num=num+old.enum where gid=old.gid;
-> update goods set num=num-new.enum where gid=new.gid;
-> end //
Query OK, 0 rows affected (0.01 sec)
mysql> delimiter ;
验证触发器是否能实现预期效果
sql
插入一个订单
mysql> insert into orders (gid,name,price,enum,otime) values ('B0001','小楷
本',2.8,20,now());
Query OK, 1 row affected, 1 warning (0.00 sec)
更新订单信息
mysql> update orders set enum=100 where oid=4;
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0

sql
删除订单信息(小楷本的库存恢复为210)
mysql> delete from orders where oid=4;
Query OK, 1 row affected (0.01 sec)

4.创建存储过程proc001
sql
mysql> delimiter //
mysql> create procedure proc001()
-> begin
-> select name,incoming from emp_new;
-> end //
Query OK, 0 rows affected (0.00 sec)
mysql> delimiter ;

5.创建存储过程proc002
sql
mysql> delimiter //
mysql> create procedure proc002(in emp_name varchar(50))
-> begin
-> select age from emp_new where name=emp_name;
-> end //
Query OK, 0 rows affected (0.01 sec)
mysql> delimiter ;

6.创建存储过程proc003
sql
mysql> delimiter //
mysql> create procedure proc003(in dept_id int,out avg_incoming decimal(10,2))
-> begin
-> select round(avg(incoming),2) into avg_incoming from emp_new where deptt2=dept_id;
-> end //
Query OK, 0 rows affected (0.00 sec)
mysql> delimiter ;
