一、数据库事务介绍 简单地说,事务就是指逻辑上的一组SQL语句操作,组成这组操作的各个SQL语句, 执行时要么全成功要么全失败。 列如:小明给小红转账5块钱,流程如下: 1.从小明银行卡取出5元,计算式money-5 2.把上面5块钱打入小红的账号上,小红收到5块,money+5 上述转账的过程,对应的sql语句为: update  xiaoming_account set money=money-5 where name='xiaoming'; update  xiaohong_account set money=money+5 where name='xiaohong'; 上述的两条SQL操作,在事务中的操作就是要么都执行,要么都不执行。 这就是事务的原子性 二、事务的四大特性(ACID) 1.原子性 事务是一个不可分割的单位,事务中的所有SQL等操作要么都发生,要么都不发生 2.一致性 事务发生前和发生后,数据的完整性必须保持一致 3.隔离性 当并发访问数据库时,一个正在执行的事务在执行完毕前,对于其他的会话是不可见的,多个并发 事务之间的数据是相互隔离的。还记得备份的参数么? 4.持久性 一个事务一旦被提交,它的数据库中的数据改变就是永久性。如果出了错误,事务也 不允许撤销,只能通过“补偿性事务” 三、事务的开启 数据库默认事务是自动提交的,也就是发一条sql它的执行一条。如果想多条sql放在 一个事务中执行,则需要使用事务进行处理。当我们开启一个事务,并且没有提交,mysql 会自动回滚事务。或者我们使用rollback命令手动回滚事务。 数据库开启事务命令: start transcation   开启事务 rollback    回滚事务 commit    提交事务 set autocommit=0 禁止自动提交 set autocommit=1 开启自动提交