在MySQL中只有利用了Innodb数据库引擎的数据库或表才支持事务

事务处理可以用来掩护数据库的完全性,担保成批的SQL语句要么全部实行,要么全部不实行

事务用来管理insert,update,delete语句

php事务MySQL 事务 GraphQL

一样平常来说,事务是必须知足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,我们一起飞!