在MySQL中只有利用了Innodb数据库引擎的数据库或表才支持事务
事务处理可以用来掩护数据库的完全性,担保成批的SQL语句要么全部实行,要么全部不实行
事务用来管理insert,update,delete语句
一样平常来说,事务是必须知足4个条件(ACID): Atomicity(原子性)、Consistency(稳定性)、Isolation(隔离性)、Durability(可靠性)
1、事务的原子性:一组事务,要么成功;要么撤回。
2、稳定性 : 有造孽数据(外键约束之类),事务撤回。
3、隔离性:事务独立运行。一个事务处理后的结果,影响了其他事务,那么其他事务会撤回。事务的100%隔离,须要捐躯速率。
4、可靠性:软、硬件崩溃后,InnoDB数据表驱动会利用日志文件重构修正。可靠性和高速率不可兼得, innodb_flush_log_at_trx_commit选项 决定什么时候吧事务保存到日志里。
在Mysql掌握台利用事务来操作
1,开始一个事务
start transaction
2, 做保存点
savepoint 保存点名称
3, 操作
4,可以回滚,可以提交,没有问题,就提交,有问题就回滚。
PHP中利用事务实例
<?php
$handler=mysql_connect(\公众localhost\公众,\"大众root\"大众,\"大众password\"大众);mysql_select_db(\"大众task\"大众);mysql_query(\"大众SET AUTOCOMMIT=0\"大众);//设置为不自动提交,由于MYSQL默认立即实行mysql_query(\公众BEGIN\"大众);//开始事务定义if(!mysql_query(\公众insert into trans (id) values('2')\"大众)){mysql_query(\公众ROLLBACK\"大众);//判断当实行失落败时回滚}if(!mysql_query(\公众insert into trans (id) values('4')\"大众)){mysql_query(\"大众ROLLBACK\公众);//判断实行失落败回滚}mysql_query(\公众COMMIT\公众);//实行事务mysql_close($handler);?>
如您还有不明白的可以不才面与我留言或是与我磋商QQ群308855039,我们一起飞!