MySql基础篇---事务操作4

事务:简单理解就是一个完整事

事务的理解:

       事务处理在各种管理系统中都有着广泛的应用,
               比如人员管理系统,很多同步数据库操作大都需要用到事务处理。比如说,在人员管理系统中,你删除一个人员,你即需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,
               再比如在银行转账的时候,用户a转出500,用户b收到500, 这两个事件都要成功才可以,如有一方失败则整个转账行为就失败。
这样,这些数据库操作语句就构成一个事务!

       如果没有事务处理,在你删除的过程中,假设出错了,只执行了第一句,那么其后果是难以想象的!
       但用事务处理。如果删除出错,你只要rollback就可以取消删除操作(其实是只要你没有commit你就没有确实的执行该删除操作)。

事物的四个特性:

  1,原子性:
                   指整个数据库事务是不可分隔的工作单元。原子性确保在事务中的所有操作要么都发生,要么都不发生。
  2,一致性:
                   一旦一个事务结束了(不管成功与否),系统所处的状态和它的业务规则是一致的。即数据应当不会被破坏。
  3,隔离性:
                  指多个事务同时操作同一数据时,每个事务都有各自的完整数据空间。
  4,永久性:
                  一旦事务完成,事务的结果应该持久化

数据库管理系统采用重执行日志来保证原子性,一致性,持久性。
数据库管理系统采用数据库锁机制来实现隔离性。

mysql 中默认事物是自动提交的。

  set autocommit=1(true)(默认)          自动提交事物
  set  autocommit =0(false)                    手动提交事物
  commit                                                     提交事物
  rollback                                                     回滚事物
  savepoint                                                  设置混滚点

注意: 想要出现事物的回滚一定要 修改当前为“手动提交事物”

在我们最终commit之前,是可以rollback的,但是一旦commit了,就永久生效了,无法rollback


  添加回滚点: savepoint   标记;  
                 例: savepoint   tag1;
  返回回滚点:  rollback   to  标记;
                例:  rollback to tag1;

 

补充:

事务  能否支持手动  和当前数据库的引擎有关系   innnoDB  支持事务
ISAM: 不支持事务操作的

查看数据表引擎
show create table  表名;

修改单个数据表的引擎
 alter table 表名 ENGINE =MyISAM;

 

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值