MySql基础(触发器)

触发器是一类特殊的事务 ,
可以监视某种数据操作(insert/update/delete),
并触发相关操作(insert/update/delete)
概念
触发器是一种特殊的存储过程,当在某个数据表中插入、修改或删除记录时,触发器会自动被触发执行。
特点:

  1. 触发器与表紧密相连,可以看作是表的一部分。
  2. 触发器自动执行
  3. 可实施更复杂的数据完整性约束
  4. 触发器具备事务的功能
    触发器创建的四要素
    监视地点(table)
    监视事件(insert/update/delete)
    触发时间(after/before)

after:当监视事件发生增删改操作后,进行触发
before:先完成触发,在进行增删改。监视事件之前

触发事件(insert/update/delete)

创建触发器的语法

create trigger 触发器名称
after/before (触发时间)
insert/update/delete (监视事件)
on  表名 (监视地址) 
for each row  --定死的
begin
sql1;
..
sqlN;
End

创建触发器recruit_delete当入库需求取消时,供应商库存数量自动更新

CREATE TRIGGER recruit_delete
AFTER
DELETE
ON recruit
FOR EACH ROW
BEGIN
	UPDATE product SET pcount=pcount-old.rcount WHERE pid=old.pid;  
END

--事件
    DELETE FROM recruit WHERE rid=13;

触发器管理

描述语法
删除触发器DROP trigger 触发器名称
查看触发器定义SHOW CREATE TRIGGER 搜索触发器名称
查看触发器SELECT * FROM 触发器名称;

触发器引用行变量
1、添加:新增一行用new,新增的列new.列名
2、删除:原来有一行,后来删了,想引用被删除的这一行的值用old,列用old.列名
3、修改:修改前的数据,用old,old列名 引用被修改之前行中的值
修改后的数据,用new,new列名引用被修改之后行中的值

事务
指的是一组操作,要么都执行成功,要么都执行失败
使用事务使用InnoDB存储引擎
事务的四大特性

  1. 原子性:要么都执行成功,要么都失败
  2. 隔离性:在所有操作未完成之前,其他会话不能看到中间的过程
  3. 一致性:事务发生前和发生后数据依然匹配
  4. 持久性:事务产生印象是不能撤销的

存储引擎

一部电影有多种存储格式,比如MP4、avi、exe…,那么同意不电影,在硬盘所占的空间也是不一样的,清晰度也不一样。
一张表也是存在硬盘里,需要知道表的存储方式,存储的方法就是存储引擎
存储引擎:Myisam、InnoDB、BDB、Memory、Archive。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值