开发者社区> 技术小胖子> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

mysql事务回滚

简介:
+关注继续查看

先收集网上的一些,待仔细测试研究~~

事务是数据库更新操作的基本单位,事务回滚是指将该事务已经完成的对数据库的更新操作撤销。

  所谓事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作 单位。例如,在关系数据库中,一个事务可以是一条SQL语句、一组SQL语句或整个程序。 简单举个例子就是你要同时修改数据库中两个不同表的时候,如果它们不是一个事务的话,当第一个表修改完,可能第二个表修改过程中出现了异常而没能修改的情 况下,就只有第二个表回到未修改之前的状态,而第一个表已经被修改完毕。而当你把它们设定为一个事务的时候,当第一个表修改完,可是第二表改修出现了异常 而没能修改的情况下,第一个表和第二个表都要回到未修改的状态!这就是所谓的事务回滚。   数据库事务是由一组 SQL 语句组成的一个逻辑工作单元。您可以把事务看作是一组不可分的 SQL 语句,这些语句作为一个整体永久记录在数据库中或一并撤销。比如在银行帐户之间转移资金:一条 UPDATE语句将从一个帐户的资金总数中减去一部分,另一条 UPDATE语句将把资金加到另一个帐户中。减操作和加操作必须永久记录在数据库中,或者必须一并撤销 ? 否则将损失资金。这个简单的示例仅使用了两条 UPDATE 语句,但一个更实际的事务可能包含许多 INSERT、UPDATE和 DELETE 语句

 


  1. $mysqli->autocommit(false); 
  2. if(false){ 
  3.  $mysqli->rollback(); 
  4. }else{ 
  5. $mysqli->commit(); 

 


  1. mysql_query("BEGIN"); //或者mysql_query("START TRANSACTION"); 
  2. $sql = "INSERT INTO ..."
  3. $sql2 = "INSERT INTO ..."
  4. $res = mysql_query($sql); 
  5. $res1 = mysql_query($sql2);  
  6. if($res && $res1){ 
  7.     mysql_query("COMMIT"); 
  8.     echo '提交成功。'; 
  9. }else{ 
  10.     mysql_query("ROLLBACK"); 
  11.     echo '数据回滚。'; 
  12. mysql_query("END"); 

 



      本文转自许琴 51CTO博客,原文链接:http://blog.51cto.com/xuqin/903634,如需转载请自行联系原作者




版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
软件测试mysql面试题:Myql中的事务回滚机制概述
软件测试mysql面试题:Myql中的事务回滚机制概述
0 0
Oracle/Mysql迁移到Postgresql事务回滚行为差异(开发避坑系列)
Mysql或Oracle迁移到Postgresql系产品后,经常会发生事务回滚导致的问题,具体问题一般都是类似于: **为什么我没rollback,我的事务就自己回滚了?** 下面我举一个简单的例子,说明下PG和其他两款DB在事务回滚行为上的差异 ## Oracle事务内报错后的行为 (完整代码贴在文章最后) ```java Class.fo
0 0
Linux安装Mysql(图文解说详细版,安装包tar包版)
Linux安装Mysql(图文解说详细版,安装包tar包版)
0 0
Windows安装Mysql(图文解说详细版,无msi版本)
Windows安装Mysql(图文解说详细版,无msi版本)
0 0
Mac安装Mysql(图文解说详细版)
Mac安装Mysql(图文解说详细版)
0 0
使用docker安装mysql和redis
使用docker安装mysql和redis
0 0
【云原生】docker安装mysql实现主从复制
【云原生】docker安装mysql实现主从复制
0 0
CentOS7 下安装MySQL
CentOS7 下安装MySQL
0 0
心动不如行动,基于Docker安装关系型数据库PostgrelSQL替代Mysql
最近“全栈数据库”的概念甚嚣尘上,主角就是PostgrelSQL,它最近这几年的技术发展不可谓不猛,覆盖OLTP、OLAP、NoSQL、搜索、图像等应用场景,实实在在的全栈性发展。帮助公司解决了数据孤岛、数据平台多、同步一致性、延迟,软硬件成本增加等业务痛点,在互联网、金融、物联网、传统企业等领域得到了广泛的应用。PostgreSQL的应用场景丰富,不亚于商用数据库Oracle,常被业界称为“开源界的Oracle”。
0 0
【大数据系列之MySQL】(一):安装MySQL5.5版本数据库
【大数据系列之MySQL】(一):安装MySQL5.5版本数据库
0 0
文章
问答
文章排行榜
最热
最新
相关电子书
更多
让 MySQL 原生分布式触手可及
立即下载
好的 MySQL 兼容可以做到什么程度
立即下载
云数据库RDS MySQL从入门到高阶
立即下载