SQL 精编 4

事务




例子:
张利从银行取钱,这个过程在数据库操作中,我们可以看做两个步骤:1,从银行表取出钱;2,再加入张利表。
功能需求:
1.这两个步骤中任何一个步骤失败了,我们都应该回到操作前的初始状态。
2.这两个步骤都成功了,就算成功操作,数据库中应该变化。


功能实现原理:在我们的InnoDB表中,我们执行的SQL语句,都要先存入日志文件,然后再讲执行结果提交到服务器,完成整个操作。
我们这里就是将开始由MySQL所掌握的自动提交功能,转变为由我们操作的提交功能,来完成一组SQL语句成功后,才真实改变数据库的操作。
功能实现的语法:
1.SET @@autocommit = 0; (1,为自动提交;0,为手动提交)
  COMMIT ; ROLLBACK;
2.START TRANSACTION ;启动事务
 COMMIT;成功后提交
 ROLLBACK;回到事务启动前的状态。
 SAVEPOINT  点名;设置标记,用于使用ROLLBACK  TO 点名 回滚到此点状态。


事务
特性:ACID
1.原子性(A):事务其实就是执行一组SQL语句,他们中只要有一条语句执行失败,整个事务都失败。
2.一致性(C):即在事务开始之前和事务结束以后,数据库的设定是一样的。
3.隔离性(I):当使用事务对数据进行操作时,我们另外的会话是无法对此条数据进行操作的。我们的InnoDB使用的是数据行锁。
4.持久性(D):当事务成功,数据将提交到数据库,数据就被持久化了。






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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值