mysql之事务、触发器

1)概念:事务是逻辑上的一组操作,组成这组操作的各个单元,要么全部成功,要么全部失败
mysql数据支持事务特性,但是要求数据表必须是innoDB存储引擎
 步骤:
1. 开启事务:start transaction


2. 正常执行sql语句,但是这个时候执行的sql语句,
  并没有直接影响到我们数据表真实的数据(而是将sql语句操作的结果保存一个临时的文件中)
3. 判断这一组操作有没有错误,如果全部成功的话(执行commit提交,才会真正的影响数据表真实的数据),
  如果有任何一个操作、单元有问题(有故障了),我们应该执行rollback,数据回滚
(3)事务的原理


在mysql数据库中,默认开启了自动提交 autocommit ,所以没有开启事务的时候,
如果某个sql语句没有错误,直接影响到数据表的真实数据


1. 开启事务之后,相当于关闭了mysql数据库的自动提交


2. 关闭自动提交机制还有一种方法:set autocommit=0;


区别就在于提交之后:
1. 使用事务提交之后,恢复了原来的自动提交机制
2. 使用set autocommit=0 提交之后,没有恢复原来的自动提交机制


(4)事务的特点:
1. 原子性:不可分割,要么全部成功,要么全部失败
2. 一致性:减少的数量  和  增加的数量一致
3. 隔离性:多个事务,多个事务之间互不影响,如果有一个事务失败了,不受干扰
4. 永久性:一旦提交,对数据的影响是永久的


触发器概念:触发器就是数据库中的一小段程序,用来监听数据表的某些行为,一旦这些行为发生了,马上执行相应的sql语句

触发器的语法:
CREATE TRIGGER 触发器名称 触发器的时间 触发器的行为 on  表名 for each row 触发器触发之后执行的相应的sql语句


触发器时间:after   before  ,在某个行为之前触发还是某个行为之后触发
触发器监听的行为:insert  、 delete  、  update
学习 两个关键字:new   old 
old:   旧的-----删除掉的记录、更新之前的记录:旧的记录
new :新的----新买的东西、更新之后的记录:新的记录
代表是一条记录


如何修改触发器?
先删除触发器,进入到在哪个数据表创建的,再重新创建触发器
触发器保存在哪里呢?
在数据库information_schema 里面,TRIGGERS 数据表
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值