MySQL事务处理

原文链接点击打开链接

1.MySQL默认是自动提交的,改变提交模式:

 

set autocommit = 0;  #禁止自动提交

 

set autocommit = 1;  #开启自动提交

 

2.动作

 开始事务:start; 

 

 提交事务:commit; 

 

回滚事务:rollback;

 

保存点:savepoint name;

 

回滚至保存点:rollback to savepoint name;

 

 

Sql代码   收藏代码
  1. begin;  
  2.    
  3. update person set name='efgh' where id =10 ;  
  4.    
  5. select * from person  ;  
  6.    
  7. rollback  ;  
  8.    
  9. select * from person ;  
 

 

 

Sql代码   收藏代码
  1. begin  ;  
  2.    
  3. update person set name='efgh' where id =10 ;  
  4.    
  5. select * from person  ;  
  6.    
  7. commit  ;  
  8.    
  9. select * from person;  

 

 

Java代码   收藏代码
  1. begin;    
  2.    
  3. update score set score=40 where scoreid=1;    
  4.    
  5. savepoint s1;    
  6.    
  7. update score set score=50 where scoreid=2;    
  8.    
  9. select * from score;    
  10.    
  11. rollback to savepoint s1;    
  12.    
  13. select * from score;    
  14.    
  15. commit;   

 

3.事务的四大特征

原子性

 

一个原子事务要么完整执行,要么干脆不执行。

这意味着,工作单元中的每项任务都必须正确执行。

如果有任一任务执行失败,则整个工作单元或事务就会被终止。

即此前对数据所作的任何修改都将被撤销。

如果所有任务都被成功执行,事务就会被提交,即对数据所作的修改将会是永久性的。

 

一致性

 

 一致性代表了底层数据存储的完整性。 它必须由事务系统和应用开发人员共同来保证。事务系统通过保证事务的原子性,隔离性和持久性来满足这一要求; 应用开发人员则需要保证数据库有适当的约束(主键,引用完整性等),并且工作单元中所实现的业务逻辑不会导致数据的不一致(即,数据预期所表达的现实业务情况不相一致)。

 

例如,在一次转账过程中,从某一账户中扣除的金额必须与另一账户中存入的金额相等。

 

隔离性

 

隔离性意味着事务必须在不干扰其他进程或事务的前提下独立执行。 换言之,在事务或工作单元执行完毕之前,其所访问的数据不能受系统其他部分的影响。

 

持久性

 

持久性意味着当系统或介质发生故障时,确保已提交事务的更新不能丢失。即一旦一个事务提交,DBMS保证它对数据库中数据的改变应该是永久性的,耐得住任何系统故障。持久性通过数据库备份和恢复来保证。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值