mysql事物实现大致逻辑测试

mysql事物实现语法

1)begin sql语句 rollback 或者commit

START TRANSACTION sql语句 rollback 或者commit

2)修改AUTOCOMMIT 自动提交是否开启的 #本文未涉及

个人对此逻辑理解

开始事物

提交每一个sql,并记录提交成功与否

对所有sql提交结果,进行判断

都执行成功,则commit#提交事务,这时所有操作才会进行

否则(有任何一个执行失败),则rollback。进行事务回滚

以下附上测试表结构和php代码

表结构

CREATE TABLE `test01` (

`01` varchar(500) DEFAULT NULL,

`02` varchar(500) DEFAULT NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8

php代码

<?

$lnk = mysql_connect("localhost", "root", "");

mysql_select_db("test");

mysql_query("BEGIN");

//mysql_query("START TRANSACTION");

$query = mysql_query("update test01 set `01` = 12");

$q1 = mysql_error();

if ($q1) {

echo "$q1"."\n";

}

$query = mysql_query("update test01 set `02` = 3");

$q2 = mysql_error();

if ($q2) {

echo "$q2"."\n";

}

if (!$q1 && !$q2) {

mysql_query("COMMIT");  //全部成功,提交执行结果

echo "commit"."\n";

} else {

mysql_query("ROLLBACK"); //有任何错误发生,回滚并取消执行结果

echo "rollback"."\n";

}

//var_dump($q1, $q2);

mysql_close($lnk);

?>

修改sql语句,让某条执行sql出现错误,测试结果

本文参考:http://www.111cn.net/database/mysql/53781.htm

http://www.cnblogs.com/in-loading/archive/2012/02/21/2361702.html

非常感谢作者!

时间: 2024-11-08 19:22:33

mysql事物实现大致逻辑测试的相关文章

mysql事物处理

mysql事物主要用于处理操作量大,复杂度高的数据.比如说,在人员管理系统中,你删除一个人员,你既要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等.这样,这些数据库操作语句就构成一个事物.注意一下几点: 在MySQL中只有使用了Innodb数据库引擎的数据库或表才支持事务. 事物处理可以用来维护数据库的完整性,保证成批的sql语句要么全部执行,要么全部不执行. 事物用来管理insert,update,delete语句. 先简单介绍一下事物吧.事物是DBMS的执行单位.它由有限的数

mysql事物

MySQL的事务支持不是绑定在MySQL服务器本身,而是与存储引擎相关1.MyISAM:不支持事务,用于只读程序提高性能 2.InnoDB:支持ACID事务.行级锁.并发 3.Berkeley DB:支持事务 一个事务是一个连续的一组数据库操作,就好像它是一个单一的工作单元进行.换言之,永远不会是完整的事务,除非该组内的每个单独的操作是成功的.如果在事务的任何操作失败,则整个事务将失败.实际上,会俱乐部许多SQL查询到一个组中,将执行所有的人都一起作为事务的一部分. 事务的特性: 事务有以下四个

12.关于mysql事物。

一.什么是事物? 个人理解,sql中的事物就是给sql语句做一个分组,组内的sql语句要不然就全部执行成功,要不然就完全的不会执.或者说作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行. 事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源.通过将一组相关操作组合为一个要么全部成功要么全部失败的单元,可以简化错误恢复并使应用程序更加可靠.一个逻辑工作单元要成为事务. 二.关于事物的示例,以及如何在mysql中开启事物. start trans

PHP和Mysql事物处理

这几天做支付的时候,又用到了事物,为了方便自己以后查看,今天闲的没事就把以前的东西整理下.(其中引用别人的东西,在这里谢谢他们贡献的代码!) 一.事务处理概述: 事务:是若干事件的集合 事务处理:当所有事件执行成功,事务才执行;若有任何一个事件不能成功执行,事务的其它事件也不被执行. 只要你的MySQL版本支持BDB或InnoDB表类型,那么你的MySQL就具有事务处理的能力.这里面,又以InnoDB表类型用的最多,下面就以InnoDB表类型为例简单说一下MySQL中的事务处理. 二.MYSQL

MySQL事物系列:3:innodb_flush_log_at_trx_commit小实验

1:创建表和存储过程 mysql> create database trx; Query OK, 1 row affected (0.02 sec) mysql> USE trx Database changed mysql> CREATE TABLE test_trx( -> id int(5), -> uname char(30)) -> engine =innodb; Query OK, 0 rows affected (0.01 sec) mysql> D

mysql事物隔离

1.读未提交(行锁) 会发生脏读,事物未提交被其他事物看到,未提交的数据为脏数据. 2.读已提交(行锁) 会发生不可重复读,事物开始时,只能看到已经提交了的事物修改. 3.重复读(行锁) 该级别保证了同一事务中多次读取到的同样记录的结果是一致的,但无法解决幻读现象. 4.序列化(表锁) 表锁级别,读也会阻塞.只有前一事物完成才会执行下一个事物. 不可重复读和幻读的却别在于: 不可重复读重在uodate和delete,而幻读重在insert. mysql在3级别解决了幻读的现象,是由于采取了一种n

tp 5.0 mysql 事物

mysql  默认 MyISAM存储引擎,不支持事物处理,InnoDB存储引擎提供了具有提交.回滚和崩溃恢复能力的事务安全.但是对比Myisam的存储引擎,InnoDB写的处理效率差一些并且会占用更多的磁盘空间以保留数据和索引 查看 当前数据库的引擎show variables like '%storage_engine%'; 查看当前表使用的引擎show table status from ceshi where name='user'; 修改表引擎方法alter table user eng

Mysql事物与二阶段提交

 1.事务的四种特性(ACID) 事务可以是一个非常简单的SQL构成,也可以是一组复杂的SQL语句构成.事务是访问并且更新数据库中数据的一个单元,在事务中的操作,要么都修改,要么都不做修改,这就是事务的目的,也是事务模型区别于其他模型的重要特征之一. 事务的原子性:原子是不可分割的,事务不可分割(没有commit数据不能被读到). 事务的持久性:在commit之后,不能丢数据.(就是在提交后,数据必须落盘redo落盘). 事务的隔离性:在数据库里面,各个事务之间不能互相影响. 事务的一致性:事务

mysql 事物四大特性和事物的四个隔离

1.事物四大特性(ACID) 原子性(atomicity):一个事务必须视为一个不可分割的最小工作单元,整个事务中的所有操作要么全部提交成功,要么全部失败回滚,对于一个事务来说,不可能只执行其中的一部分操作,这就是事务的原子性. 一致性(consistency):数据库总数从一个一致性的状态转换到另一个一致性的状态. 隔离性(isolation):一个事务所做的修改在最终提交以前,对其他事务是不可见的. 持久性(durability):一旦事务提交,则其所做的修改就会永久保存到数据库中.此时即使