网站建设知识
学习Mysqlday04
2025-07-22 11:14  点击:0

学习Mysqlday04

1.触发器

触发器是数据库系统中的一种机制,可以根据某一张表的增、删、改操作时作出一些特定的功能处理。

触发器创建在表的基础上,类型有三种,增、删、改,也就是说,一个表最多只能创建三个触发器。

同时,触发器是可以联动的。比如说销售记录插入一条销售信息,则销售记录表的insert触发器触发,针对商品表的库存进行修改。如果商品表创建了update触发器,则商品表的update触发器也会紧跟着触发。

语法 :create trigger t_xiaoshou after insert/update/delete on 表名

for each row

begin

end;

在触发中new表示新添加的数据行 old 表示删除的数据行。

Insert 时只有new 数据行

Delete时只有 old 数据行

Update时 两个数据行都有,更改数据时,先把这一行数据删除,数据行存在old里面,然后再插入修改后的数据行,则插入的数据行保存在new 里面。

案例一:insert触发器

DELIMITER$$

createtrigger t_orderList AFTER insert on orderList

for each row

begin

update goods set kuchun = kuchun-new.numwhere goods.id = new.gid;

end$$;

案例二:delete触发器

DELIMITER$$

createtrigger t_student AFTER delete on student

for each row

begin

insert into biyeiStudentvalues(old.studentno,old.name,old.sex,old.phone,old.birthday,

old.address,old.email);

end$$;

案例三:update 触发器 当更改了库存后,触发,重新计算商品的总价值。

delimiter $$

createtrigger t_goods before update on goods

for each row

begin

if old.kuchun != new.kuchun then

set new.totalPrice =new.kuchun*new.inPrice;

end if;

end;

$$;

2.存储过程

存储过程类似于Java中的方法,把一些复杂的业务进行封装,并进行了预编译,以后可以调用过程名,就可以执行过程中的业务代码,就像Java中的方法调用。过程可以给参数。

优点:速度快、安全、减少网络流量

练习:

5添加存储过程

传入参数调用存储过程

查传出来的参数